当我没有为样本图像或调整图像大小设置可选高度参数时,Imagick 抱怨



当我使用resizeImage或sampleImage时,我得到的错误表明我没有提供足够的参数,像这样…

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

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

$subImage->resizeImage($w);

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

对于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并不直接继承。您的应用程序必须执行额外的计算,否则您将遇到未定义的行为。处理色差、量子色、度数和百分比值是你负责的很好的例子。

最新更新