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

Рейтинг: 0Ответов: 1Опубликовано: 02.07.2023

Есть изображение размером 1920х980рх. Изменяю размеры изображения на 300х153рх.

string originalPicPath = project.Variables["imageAddress"].Value;

int newWidth = 300;
int newHeight = 153;

System.Drawing.Image image = System.Drawing.Image.FromFile(originalPicPath);
System.Drawing.Image resized = image.GetThumbnailImage(newWidth, newHeight, null, System.IntPtr.Zero);

Проблема в том, что высота изображения задана фиксированная - 153рх. Можно ли как-то определять высоту автоматически, сохраняя соотношение сторон?

Ответы

▲ 2Принят

Простая математика

Image image = Image.FromFile(originalPicPath);

int newWidth = 300;
double scale = (double)newWidth / image.Width;
int newHeight = (int)(scale * image.Height);

Image resized = image.GetThumbnailImage(newWidth, newHeight, null, IntPtr.Zero);

Но вообще GetThumbnailImage для изменения размера изображения редко используют, хотя на суть вопроса про соотношение сторон это не влияет.