x
Solved

C# .net Image Resizer

Posted on 2014-02-07
Medium Priority
341 Views
Hi

I have the following piece of code which resizes images to 620 pixels wide by 414 pixels high

Problem is when someone uploads a picture say 309 pixels wide by 414 pixels high it stretches the image to 620 pixels wide.

Anyone know how to amend this so if the width of a picture is less that 620 pixels wide it adds white space to either side of the image?

``````using System.Drawing;
using System.Drawing.Drawing2D;

public class ImageResizer
{
public static Image ResizeImage(Image image, Size size, bool preserveAspectRatio)
{
int newWidth;
int newHeight;
if (preserveAspectRatio)
{
int originalWidth = image.Width;
int originalHeight = image.Height;
float percentWidth = (float)size.Width / (float)originalWidth;
float percentHeight = (float)size.Height / (float)originalHeight;
float percent = percentHeight < percentWidth ? percentHeight : percentWidth;
newWidth = (int)(originalWidth * percent);
newHeight = (int)(originalHeight * percent);
}
else
{
newWidth = size.Width;
newHeight = size.Height;
}
Image newImage = new Bitmap(newWidth, newHeight);
using (Graphics graphicsHandle = Graphics.FromImage(newImage))
{
graphicsHandle.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphicsHandle.DrawImage(image, 0, 0, newWidth, newHeight);
}
return newImage;
}
}
``````
0
Question by:TPLLimited
1 Comment

LVL 19

Accepted Solution

Melih SARICA earned 1500 total points
ID: 39841551
Create a bitmap with white background
resize height
draw image on this bitmap.
0

Featured Post

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.