我一直在我的一个图像处理脚本中使用Imagick和ImageMagick。在具有以下配置的开发服务器上,它运行良好。
PHP版本7.0.33 意象3.4.3 ImageMagick 6.7.9-10 2016-05-05 Q16 http://www.imagemagick.org
但是在客户服务器上,出现以下错误。
致命错误:未捕获错误:调用未定义的方法Imagick :: flattenImages()
我的客户端具有以下配置
PHP版本7.2.15 意象3.4.3 ImageMagick 7.0.7-11 Q16 x86_64 2017-11-20 http://www.imagemagick.org
我只是想知道客户端服务器上缺少Imagick :: flattenImages()的原因,因为我的服务器和客户端服务器都具有相同的Imagick版本
答案 0 :(得分:1)
试试这个:
$image = new Imagick();
$image->readImage( $path_to_file );
$flattenedImage = $img->mergeImageLayers( imagick::LAYERMETHOD_FLATTEN );
PHP docs for Imagick::mergeImageLayers()
method
您也可以将 these constants 之一作为层方法传递:
imagick::LAYERMETHOD_UNDEFINED
(ImageMagick 6.2.9+)imagick::LAYERMETHOD_COALESCE
(ImageMagick 6.2.9+)imagick::LAYERMETHOD_COMPAREANY
(ImageMagick 6.2.9+)imagick::LAYERMETHOD_COMPARECLEAR
(ImageMagick 6.2.9+)imagick::LAYERMETHOD_COMPAREOVERLAY
(ImageMagick 6.2.9+)imagick::LAYERMETHOD_DISPOSE
(ImageMagick 6.2.9+)imagick::LAYERMETHOD_OPTIMIZE
(ImageMagick 6.2.9+)imagick::LAYERMETHOD_OPTIMIZEPLUS
(ImageMagick 6.2.9+)imagick::LAYERMETHOD_OPTIMIZEIMAGE
(ImageMagick 6.3.0+)imagick::LAYERMETHOD_OPTIMIZETRANS
(ImageMagick 6.3.0+)imagick::LAYERMETHOD_REMOVEDUPS
(ImageMagick 6.3.0+)imagick::LAYERMETHOD_REMOVEZERO
(ImageMagick 6.3.0+)imagick::LAYERMETHOD_COMPOSITE
(ImageMagick 6.3.0+)imagick::LAYERMETHOD_MERGE
(ImageMagick 6.3.7+)imagick::LAYERMETHOD_FLATTEN
(ImageMagick 6.3.7+)imagick::LAYERMETHOD_MOSAIC
(ImageMagick 6.3.7+)