главная продукты downloads форум тех. поддержка

 

Главная страница

GDI+ FAQ: Changing resolution or cropping an image


One of the simpler processes in GDI+ image manipulation is changing the resolution of an image or cropping an image. This all depends on the DrawImage method as illustrated in the GDI+ FAQ article Drawing an image which you may wish to read before continuing.
 

To change the resolution of an image you need to go through the following steps.

  • Load the original image

  • Create a blank image of the resolution you desire.

  • Get a Graphics object for the new image

  • Draw the original image onto the new one

  • Save the new image, perhaps with a different filename.

Cropping an image is similar in operation.

  • Load the original image

  • Create a blank image the same size as the area you want to crop to

  • Get the Graphics object for the new image

  • Draw the desired portion of the original image onto the new image

  • Save the new image, perhaps with a different filename.

Listing 1 shows how to change the resolution of an image to make it 30% of the original width and height.

 

Bitmap bm = (Bitmap)Image.FromFile("myimage.jpg");
Bitmap resized = new Bitmap((int)(0.3f*bm.Width),(int)(0.3f*bm.Height));
                                 Graphics g=Graphics.FromImage(resized);
g.DrawImage(bm, new Rectangle(0,0,bm.Width,bm.Height),0,0,
resized.Width,resized.Height,GraphicsUnit.Pixel);
g.Dispose();
resized.Save("resizedimage.jpg",ImageFormat.Jpeg);

 

Listing 2 shows how to crop an image..
 
Bitmap bm = (Bitmap)Image.FromFile("myimage.jpg"); // assumes a 400 * 300
                          image from which a 160 * 120 chunk will be taken
Bitmap cropped = new Bitmap(160,120);
Graphics g=Graphics.FromImage(cropped);
g.DrawImage(bm, new Rectangle(0,0,cropped.Width,cropped.Height),100,50,cropped.Width,
                          cropped.Height,GraphicsUnit.Pixel);
g.Dispose();
cropped.Save("croppedimage.jpg",ImageFormat.Jpeg);
 

 

 

Back to the GDI+ FAQ

 

e-mail:

 

bousoft@mail.ru