Масштабирование System.Drawing.Bitmap до заданного размера с сохранением соотношения сторон

Я хочу масштабировать System.Drawing.Bitmapкак минимум до некоторой фиксированной ширины и высоты. Это нужно для создания миниатюр для галереи изображений на веб-сайте, поэтому я хочу сохранить соотношение сторон таким же.

У меня есть несколько решений, но ни одно из них не делает то, что мне нужно; они вращаются вокруг масштабирования, основанного на сохранении одинаковой ширины или высоты, но не изменении обоих.

Пример:

Если у меня есть изображение 4272 на 2848, и я хочу масштабировать его до размера 1024 на 768, то результирующее изображение должно быть 1024 на 683 и дополнено (черной рамкой )до 1024 на 768.

Как я могу сделать это с изображениями больше требуемого размера и меньше требуемого размера, а также с дополняющими изображениями, которые не соответствуют точному размеру, который мне нужен после масштабирования?

50
задан Michael J. Gray 3 May 2012 в 16:22
поделиться