如何使用PHP获取图像宽高比?

时间:2009-11-13 07:02:05

标签: php

我想知道用户是否上传图片,如何在创建拇指时获得该图片的宽高比。我知道我的宽度将是180px,但我怎样才能达到高度。

以下是我目前列出的代码。

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

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

2 个答案:

答案 0 :(得分:3)

你想做这样的事吗?

$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);
}

答案 1 :(得分:2)

你想保持相同的宽高比

类似于$modheight = ((180.0/$width) * $height);

它会给你一张180宽的照片和任何高度,但比例与原来相同。