致命错误:未被捕获的错误:调用未定义的方法Imagick :: flattenImages()

时间:2019-02-27 11:20:34

标签: imagemagick imagick imagemagick-convert

我一直在我的一个图像处理脚本中使用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版本

1 个答案:

答案 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+)