Получение новых размеров изображения для изображения при задании минимальной ширины и минимальной высоты

#c# #asp.net #image #css

#c# #asp.net #изображение #css

Вопрос:

Я ищу функцию, которая будет принимать объект изображения, минимальную ширину и минимальную высоту. он вернет объект size (или любой другой объект со свойством width и height) с новыми размерами изображения.

Например, если я передал изображение, имеющее исходные размеры:

1024×768 (ширина x высота)

в эту функцию с:

минимальная ширина: 256, минимальная высота: 206

Функция вернет объект размера:

новая ширина: 274, новая высота: 206

Это позволяет изображению заполнить пробел, сохраняя соотношение сторон изображения.

Спасибо за любую помощь, которую кто-либо может оказать.

Приветствия,

Крис

Комментарии:

1. Вы пробовали писать такую функцию? Какие у вас проблемы?

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

Ответ №1:

 Size GetMinimalDimensions(int origwidth, int origheight, int minwidth, int minheight)
{
    double scale1, scale2;
    scale1 = (double)origwidth / minwidth;
    scale2 = (double)origheight / minheight;
    if (scale1 > scale2) {
        return new Size((int)Math.Round(origwidth / scale2), minheight);
    }
    return new Size(minwidth, (int)Math.Round(origheight / scale1));
}
 

Довольно просто. Почему вы не могли сделать это самостоятельно? oO

Комментарии:

1. Спасибо за это, это было действительно легко, я просто шел по совершенно неправильному пути, но снова посмотрел на него. Я понял это, спасибо за это. Я все равно отмечу это как ответ, спасибо за это!

2. последняя строка должна быть return new Size(minwidth, (int)Math.Round(origheight / scale1));

3. верно, моя ошибка. Исправлено, ty