How to not lose quality when stretch in PictureBox? - c#

I'd loaded 10x10 (px) image into PictureBox. When I'd set up SizeMode property to Stretch image resized, but it losed quality.
I know in lazarus I can have done this:
Image3.Picture.Bitmap.LoadFromFile('...............');
Image3.Stretch := true;
// Image3 is object of class TImage
And image will be streched without any loses of quality.
How I can achieve same in C# Windows Forms?

Related

Resizing components in an image when image was resizing in c#

I have an Image in that I need to place some textboxes and checkboxes in the Image but when I try to resize the image in a picturebox, how to resize all the components that was placed in the Image ?
For this I used Windows Form
1.adding picturebox and placing the components in that picturebox
Sample code I used was :
Metafile EMF = (System.Drawing.Imaging.Metafile)System.Drawing.Imaging.Metafile.FromFile("Sample.EMF");
this.pictureBox1.Image = EMF;
pictureBox1.Controls.Add(textBox1);
this.textBox1.Parent = this.imageBox;
textBox1.BringToFront();
With this code I was able to fix the components' position in the image but when the image was resized , how can I resize all the components that are placed in the image.

Extend an image with transparent portion

I am making and photo editor and displaying an image in pictureBox and I resize the image to fit in the pictureBox without effecting its ratio of sides.
Example if the pictureBox is of size (400x400) and the image is of (800x600) i will resize it to (400x300) programatically.
The problem is I want this image to be the size of (400x400) to cover complete pictureBox for this I want to add transparent part in my image to make it from (400x300) to (400x400)
Snapshot of my image on the pictureBox
In the image above my blue is my image and other part is remaining picturebox.
Again I want image'size (blue one) to be equal to picturebox's size and the remaining part of picturebox is covered by transparent part of picture
Note: I don't want to stretch my image but add transparent part
thanks,
The most direct way is to create the larger bitmap and then DrawImage the picture into it.
Bitmap original = (Bitmap) Bitmap.FromFile(someFileName);
Size sz = yourPictureBox.ClientSize;
Bitmap bmp = new Bitmap(sz.Width, sz.Height);
using (Graphics G = Graphics.FromImage(bmp))
G.DrawImage(original, 0, 0);
yourPictureBox.Image = bmp;

How to get blank space size when using PictureBoxSizeMode.Zoom of PictureBox

I am using PictureBox class in Windows Forms. Also I set PictureBox's SizeMode to PictureBoxSizeMode.Zoom.
How to calculate this black width what is added to the picture? Or how to get ratio what is used to scale this picture? Is there some existing property to get real size of image?
Is there some existing property to get real size of image?
PictureBox.Image.Size
How to calculate this black width what is added to the picture? Or how to get ratio what is used to scale this picture?
There is no standard way of doing that. But you can look at http://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/PictureBox.cs,5c2ab37313f547c2 how PictureBox does that internally.

Automatically re-size images to fit screen resolution in Visual Studio

I am designing a welcome screen for a desktop application using forms in Visual Studio 2005. I have run into a bit of a problem with the splash image. I'd like it to automatically re-size according to the screen resolution of the user. As it stands I have a source image at a high resolution that I have been shrinking in Photoshop to fit the form design window, but when I build and run the application the image is tiny compared to my screen (1920 x 1080). Right now it is placed inside a panel. I tried messing around with the AutoSize options but that didn't do much.
The question:
How can I set the image to automatically re-size according to the screen resolution of the end user?
The picturebox already has this feature. Load the picture and set the property SizeMode.
// correct proportions
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
// or
// larger, but distorted
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
in code or via the property window and the image will fill the complete picturebox. Set the height/width of the picturebox to scale the image like so:
pictureBox1.Width = Screen.FromControl(this).WorkingArea.Width / 3;

C# code to save the zoomed image on picturebox control in windows mobile App

I capture a image from windows mobile camera and save it on
picturebox control..now to zoom the picture i am increasing
its size by Onpaint event.The image is getting zoomed but
i am not able to save the zoomed image(ie.., the increased
image size)...
Please let me know
Presumably you have a Bitmap being displayed in the PictureBox? If so, then do this:
Bitmap bmp = (Bitmap)myPictureBox.Image;
bmp.Save("\My Documents\My Pictures\image.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

Categories

Resources