2011-12-16 122 views
2

最大裁剪区域是否有任何PHP/GD函数,可以计算这样的:对于给定的图像和纵横比

输入:图像宽度,图像的高度和纵横比兑现。输出: 最大居中作物方面给定的纵横比 (尽管图像的原始纵横比)。

例如:图像是1000x500,a.r.是1.25:最大作物是625x500。图像是100x110,最大裁剪是:80x110。

回答

7

没有函数,计算这一点,因为这是基本的数学:

$imageWidth = 1000; 
$imageHeight = 500; 
$ar = 1.25; 

if ($ar < 1) { // "tall" crop 
    $cropWidth = min($imageHeight * $ar, $imageWidth); 
    $cropHeight = $cropWidth/$ar; 
} 
else { // "wide" or square crop 
    $cropHeight = min($imageWidth/$ar, $imageHeight); 
    $cropWidth = $cropHeight * $ar; 
} 

See it in action

+0

谢谢。我花了几分钟的时间来到你的代码之类的东西(但你的解决方案更加优雅)。是的,初级但有用。 – Polmonino 2011-12-17 00:00:24