Как ограничить ширину или высоту изображения при загрузке - PullRequest
1 голос
/ 21 февраля 2012

Я хотел бы манипулировать / изменять размеры изображений аналогично Pinterest , но я не уверен, каков наилучший способ приблизиться к нему. Цель состоит в том, чтобы смешать как портретные, так и ландшафтные изображения, но наложить некоторые ограничения на максимальную высоту и ширину.

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

Есть идеи, как добиться таких результатов с помощью PHP?

Ответы [ 3 ]

1 голос
/ 21 февраля 2012

попробуйте с этим

       $needheight = 1000;
       $needwidth = 1000;

       $arrtest = getimagesize($upload_image_physical_path);

        $actualwidth = $arrtest[0];
        $actualheight = $arrtest[1];

        if($needwidth > $actualwidth || $needheight > $actualheight){
             //uplaod code  
        }

ура

1 голос
/ 21 февраля 2012

Вам просто нужно понять, какой из двух краев изображения длиннее, и пропорционально вычислить другое измерение.Если максимальное длинное egde составляет 1024, то, если один из двух ребер больше, вы установите это значение равным 1024, и вычислите другое, чтобы соответствовать пропорциям.Затем вы передадите эти два значения своим функциям управления изображениями.

Как здесь: http://www.white -hat-web-design.co.uk / blog / resizing-images-with-php /

Или здесь: http://www.9lessons.info/2009/03/upload-and-resize-image-with-php.html

0 голосов
/ 21 февраля 2012

Проверьте максимальный размер, а затем измените размер в зависимости от соотношения.Вот пример псевдокода:

if($imageHeight > $maxHeight) {
    $newHeight = $maxHeight;
    $newWidth = $imageWidth * ($maxHeight / $imageHeight);
}
if($imageWidth > $maxWidth) {
    $newWidth = $maxWidth;
    $newHeight = $imageHeight * ($maxWidth / $imageWidth);
}
resize($image, $newWidth, $newHeight);

Сначала он проверяет высоту и, если высота больше, уменьшает ее.Затем он проверяет ширину.Если ширина слишком велика, она снова уменьшается.Конечный результат, высота и ширина будут в ваших границах.Для масштабирования используется коэффициент.

Обратите внимание, это псевдокодиш.Фактический вызов функции изменения размера будет зависеть от вашей библиотеки обработки изображений - то же самое касается вызовов для получения размера изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...