Bitmap Extension Methods; for Resize, Crop and save

For Bitmap manipulation I wrote three extension methods. With this method you can resize, crop and save (as jpg) your image.


Resize Method


public static Bitmap resizeImage(this Bitmap input, Size size)


int sourceWidth = input.Width;

int sourceHeight = input.Height;

float nPercent = 0;

float nPercentW = 0;

float nPercentH = 0;

nPercentW = ((float)size.Width / (float)sourceWidth);nPercentH = ((float)size.Height / (float)sourceHeight);

if (nPercentH < nPercentW)

nPercent = nPercentH;


nPercent = nPercentW;

int destWidth = (int)(sourceWidth * nPercent);

int destHeight = (int)(sourceHeight * nPercent);

Bitmap b = new Bitmap(destWidth, destHeight);

Graphics g = Graphics.FromImage(b);g.InterpolationMode = InterpolationMode.HighQualityBicubic;

g.DrawImage(input, 0, 0, destWidth, destHeight);


return b;




Crop Method


public static Bitmap cropImage(this Bitmap input, Rectangle cropArea)


Bitmap bmpImage = new Bitmap(input);Bitmap bmpCrop = bmpImage.Clone(cropArea, input.PixelFormat);

return (System.Drawing.Bitmap)(bmpCrop);




Safe Method


public static void saveJpeg(this Bitmap img, string path, long quality)


// Encoder parameter for image quality

EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)quality);

// Jpeg image codec

ImageCodecInfo jpegCodec = getEncoderInfo("image/jpeg"); if (jpegCodec == null)


EncoderParameters encoderParams = new EncoderParameters(1);

encoderParams.Param[0] = qualityParam;

img.Save(path, jpegCodec, encoderParams);


public static ImageCodecInfo getEncoderInfo(string mimeType)


// Get image codecs for all image formats

ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

// Find the correct image codec

for (int i = 0; i < codecs.Length; i++)

if (codecs[i].MimeType == mimeType)

return codecs[i]; return null;



Leave a Reply

Your email address will not be published. Required fields are marked *