Imagick的resize()覆盖结果图像上的黑色网格

时间:2014-12-12 09:56:39

标签: php image image-processing imagemagick imagick

当使用ImageMagick调整大小(在这种情况下缩小尺寸)图像时,我在图像上得到黑色网格覆盖。最小可重现代码是:

$modifiedImage = new Imagick("an_image.png");
$modifiedImage->resizeImage(176,256,imagick::FILTER_LANCZOS,0,true);

调整大小时:

Original image

我得到以下结果:

Resized image, showing corruption

关于这里出了什么问题的任何想法?

1 个答案:

答案 0 :(得分:1)

正如Mark Setchell指出的那样,它至少适用于ImageMagick的后续版本,在我使用的版本之后发布( 6.7.7-10 2014-03-06 Q16

通过将过滤器更改为FILTER_BOX而不是FILTER_LANCZOS,我找到了一个临时解决方案而没有更新软件包。

$modifiedImage->resizeImage($width,$height,imagick::FILTER_BOX,0,true);

虽然质量较低(但转换时性能更高/时间更短),但这样可以正确生成缩小尺寸的图像。