Расчет ширины и высоты для изменения размера изображения

Я хочу вычислить ширину изображения и размер для изменения размера. Думаю, может быть три ситуации:

1. Ширина изображения превышает максимально допустимую: Затем измените ширину изображения до максимальной и вычислите высоту в соответствии с максимальным пределом ширины. Например,ширина изображения 2248, а высота 532. Ширина больше, а высота меньше. Уменьшите ширину до 1024 и вычислите высоту, которая будет около 242.

2. Высота изображения превышает максимально допустимую высоту: Аналогичным образом измените высоту до максимальной и соответственно рассчитайте ширину.

3. Высота и ширина превышают максимальную высоту и максимальную ширину: Обработайте дальше, выясните, вертикальное или горизонтальное изображение. Если изображение горизонтальное, увеличьте ширину до максимальной и рассчитайте высоту в соответствии с этим. В противном случае, если изображение вертикальное или квадратное, увеличьте высоту до максимального и рассчитайте ширину в соответствии с этим.

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

PS. Вчера я задал аналогичный вопрос . В моем предыдущем вопросе я не был уверен, какой должна быть логика, а теперь я знаю, какой она должна быть (упомянута выше), и хотел бы знать, хороша ли она. Спасибо за любую помощь.

 $max_width) OR ($original_height > $max_height))
{
//original width exceeds, so reduce the original width to maximum limit.
//calculate the height according to the maximum width.
    if(($original_width > $max_width) AND ($original_height <= $max_height))
    {   
        $percent = $max_width/$original_width;  
        $new_width = $max_width;
        $new_height = round ($original_height * $percent);
    }

    //image height exceeds, recudece the height to maxmimum limit.
    //calculate the width according to the maximum height limit.
    if(($original_width <= $max_width) AND ($original_height > $max_height))
    {
        $percent = $max_height/$original_height;
        $new_height = $max_height;
        $new_width = round ($original_width * $percent);
    }

    //both height and width exceeds.
    //but image can be vertical or horizontal.
    if(($original_width > $max_width) AND ($original_height > $max_height))
    {
        //if image has more width than height
        //resize width to maximum width.
        if ($original_width > $original_height)
        {
            $percent = $max_width/$original_width;
            $new_width = $max_width;
            $new_height = round ($original_height * $percent );
        }

        //image is vertical or square. More height than width.
        //resize height to maximum height.  
        else
        {
        $new_height = $max_height;
        $percent = $max_height/$original_height;
        $new_height = $max_height;
        $new_width = round ($original_width * $percent);
        }
    }
} 
?>

5
задан Community 23 May 2017 в 12:06
поделиться