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);
    }

РЕДАКТИРОВАТЬ: Яхотелось бы, чтобы изображение было дополнено, а не обрезано

Ответы на вопрос(13)

Ваш ответ на вопрос