imagemagick调整大小到确切大小

时间:2012-02-12 05:42:30

标签: imagemagick image-resizing

更多关于“技术诀窍”的问题。我有一堆完全不同尺寸的图像:一个是360x360,另一个是1200x800。我会为精确大小的网页制作缩略图,例如150x150。由于尺寸不同,我不能只使用convert -resize或只是采用某种方式,我需要两者。 你会如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

您需要一个能够根据源图像宽度和高度以及最大缩略图宽度和高度来计算缩略图大小的功能:

function setWidthHeight($srcWidth, $srcHeight, $maxWidth, $maxHeight){

    $ret = array($srcWidth, $srcHeight);

    $ratio = $srcWidth / $srcHeight;

    if($srcWidth > $maxWidth || $srcHeight > $maxHeight){

        $ret[0] = $maxWidth;
        $ret[1] = $ret[0] / $ratio;

        if($ret[1] > $maxHeight){
            $ret[1]  = $maxHeight;
            $ret[0] = $maxHeight * $ratio;
        }
    }    

    $ret[0] = intval(ceil($ret[0]));
    $ret[1] = intval(ceil($ret[1]));   

    return $ret;
}

然后,您可以使用您喜欢的缩略图图像生成程序imagecopyresampled(...)或$ imageMagick-> thumbnailImage($ newWidth,$ newHeight);