2011-12-16 34 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