Как получить соотношение сторон изображения с помощью PHP? - PullRequest
2 голосов
/ 13 ноября 2009

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

Вот код, который я получил, перечисленный ниже.

list($width, $height) = getimagesize($file) ;

if ($width >= 180){
    $modwidth = 180;
    $modheight = ;
} else {
    $modwidth = $width;
    $modheight = $height;
}

Ответы [ 2 ]

3 голосов
/ 13 ноября 2009

Вы пытаетесь сделать что-то подобное?

$targetsize = $x = $y = 180;
list($width, $height) = getimagesize($file);

if($width > $targetsize || $height > $targetsize) {
    $aspect = $width / $height;

    if($aspect < 1) $x *= $aspect; // portrait
    else $y /= $aspect; // landscape

    resizeImageFunctionHere($file, $x, $y);
}

Но если вы всегда хотите ширину 180 независимо от того, портретная фотография или нет:

$targetwidth = $x = $y = 180;
list($width, $height) = getimagesize($file);

if($width > $targetsize) {
    $aspect = $width / $height;
    $y *= $aspect;

    resizeImageFunctionHere($file, $x, $y);
}
2 голосов
/ 13 ноября 2009

Вы хотите сохранить такое же соотношение сторон

вот как-то так $modheight = ((180.0/$width) * $height);

это даст вам изображение шириной 180 и любой высотой, но с тем же соотношением, что и у исходного.

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