Получить ориентацию изображения в PHP

Как я могу получить ориентацию изображения (пейзаж или портрет) изображения (JPEG или PNG) в PHP?

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

Спасибо за Ваш ответ!

Solutions Collecting From Web of "Получить ориентацию изображения в PHP"

Я всегда делал это:

list($width, $height) = getimagesize('image.jpg'); if ($width > $height) { // Landscape } else { // Portrait or Square } 
 list($width, $height) = getimagesize("path/to/your/image.jpg"); if( $width > $height) $orientation = "landscape"; else $orientation = "portrait"; 

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

Вы можете сделать это с помощью простого оператора IF / ELSE .

Вы также можете использовать функцию: Imagick::getImageOrientation

http://php.net/manual/en/imagick.getimageorientation.php

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

 public static function fit_box($box = 200, $x = 100, $y = 100) { $scale = min($box / $x, $box / $y, 1); return array(round($x * $scale, 0), round($y * $scale, 0)); } 

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

  function calculateSize($width, $height){ if($width <= maxSize && $height <= maxSize){ $ratio = 1; } else if ($width > maxSize){ $ratio = maxSize/$width; } else{ $ratio = maxSize/$height; } $thumbwidth = ($width * $ratio); $thumbheight = ($height * $ratio); } 

Здесь максимальный размер – тот, который я инициализировал чем-то вроде 120px как по высоте, так и по ширине. , , чтобы миниатюра не превышала этот размер. , ..

Это работает для меня, независимо от пейзажной или портретной ориентации, и может применяться в целом