2015-09-28 18 views
1

當我使用兩種resizeImage或sampleImage,我得說明我沒有提供足夠的參數,像這樣的錯誤......Imagick抱怨的時候,不設置可選的高度參數sampleImage或resizeImage

Warning: Imagick::sampleimage() expects exactly 2 parameters, 1 given 

其實,我只是提供了第一個參數,因爲我想設置的寬度,而不是高度,以保持寬高比...

$subImage->resizeImage($w); 

代碼的工作,我相信所有的參數應該是除第一個之外是可選的,那麼爲什麼會出現錯誤,我該如何消除它?

回答

1

對於Imagick::sampleImage您需要計算最終高度。

// new height = original height/original width * new width 
$h = $subImage->getImageHeight()/$subImage->getImageWidth() * $w 
$subImage->sampleimage($w, $h); 

我相信所有的參數應該是可選

記住Imagick庫結合ImageMagick的C-API,以及一些CLI-API的繼承porcelain的不直接結轉。你的應用必須做額外的計算,否則你會遇到未定義的行爲。處理方面口糧,量子色彩,度數和百分比值是您負責任的好例子。