2011-04-08 127 views
0
$size1 = 170; 
$size2 = 128; 


if($width > $height){ 

exec("convert ".$startfile." -resize x".$size2." -quality 100 ".$resultfile); 

} else { 

exec("convert ".$startfile." -resize ".$size1." -quality 100 ".$resultfile); 
} 

exec("convert ".$resultfile." -gravity Center -crop ".$size1."x".$size2."+0+0 ".$resultfile); 

需要幫助來調整圖像大小170x128 px。 上面的功能工作正常,但有一個問題。如您所見,如果圖像寬度大於高度,則腳本首先會使圖像成爲128像素高度。當寬度和高度之間有小的差異時,會出現問題。例如,如果圖像尺寸是387x310像素,則腳本將使用語句如果($ width> $ height)並且將使圖像的像素高度爲128像素。問題是,在同一時間圖像寬度將被調整爲160像素。但是在調整大小後我需要170個像素寬度。調整大小時的圖像尺寸計算(php + imagemagick)

我需要知道將圖像寬度調整爲128像素高度後圖像的寬度。我需要這樣的事情:

if($width > $height && $width_after_resizing > 127) { 
} else { 
} 

是否有任何方式如何在裁剪之前計算圖像尺寸?謝謝。

回答

0

檢查對$高度$寬度假定目標將是正方形。 如果你改變什麼:

if($width > $height){ 

if($width/$size1 > $height/$size2){ 
+0

Twelve47,謝謝,但它沒有幫助。調整387x310像素圖像時,結果爲160x128,而不是170x128。因此,該腳本首先將圖像調整爲128像素高度。 :( – guanche 2011-04-08 12:09:00

+0

解決了這個問題,這個工作原理:if($ width/$ size1> $ height/$ size2){}。非常感謝你,Twelve47! – guanche 2011-04-09 08:55:36

+0

不用擔心,我現在換成size1和size2 。 – Twelve47 2011-04-09 08:57:46

0

如果你的gd使您可以使用和getimagesize http://php.net/manual/en/function.getimagesize.php

+0

我用和getimagesize關於ImageMagick的更直接的信息。我知道如何檢測圖像尺寸,但我的問題與此無關。我需要在調整大小之前計算圖像尺寸。我需要知道如果我調整它的128像素高度,會變成圖像寬度。 – guanche 2011-04-08 11:06:30