当我没有为sampleImage或resizeImage设置可选的height参数时,Imagick会抱怨

时间:2015-09-28 13:17:00

标签: imagemagick imagick

当我使用resizeImage或sampleImage时,我收到错误,表明我没有提供足够的参数,如此...

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

事实上,我只提供第一个参数,因为我想设置宽度,而不是高度,以保持纵横比......

$subImage->resizeImage($w);

代码有效,我相信所有参数都应该是可选的,除了第一个,所以为什么会出现错误,如何消除它?

1 个答案:

答案 0 :(得分: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,并且一些继承的porcelain CLI-API不会直接转移。您的应用程序必须执行其他计算,否则您将遇到未定义的行为。处理方面口粮,量子颜色,度数和百分比值是您负责的很好的例子。