c # Изменение размера изображения до другого размера с сохранением соотношения сторон
я пытаюсь изменить размер изображения, сохраняя соотношение сторон исходного изображения, чтобы новое изображение неТы выглядишь раздавленным.
например:
Преобразуйте изображение 150 * 100 в изображение 150 * 150.
Дополнительные 50 пикселей высоты должны быть дополнены белым фоновым цветом.
Это текущий код, который я использую.
Это хорошо работает для изменения размера, но изменение соотношения сторон исходного изображения сдавливает новое изображение.
private void resizeImage(string path, string originalFilename,
int width, int height)
{
Image image = Image.FromFile(path + originalFilename);
System.Drawing.Image thumbnail = new Bitmap(width, height);
System.Drawing.Graphics graphic =
System.Drawing.Graphics.FromImage(thumbnail);
graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphic.SmoothingMode = SmoothingMode.HighQuality;
graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphic.CompositingQuality = CompositingQuality.HighQuality;
graphic.DrawImage(image, 0, 0, width, height);
System.Drawing.Imaging.ImageCodecInfo[] info =
ImageCodecInfo.GetImageEncoders();
EncoderParameters encoderParameters;
encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality,
100L);
thumbnail.Save(path + width + "." + originalFilename, info[1],
encoderParameters);
}
РЕДАКТИРОВАТЬ: Яхотелось бы, чтобы изображение было дополнено, а не обрезано