imagemagick - 致命错误:未捕获的错误:调用未定义的方法 Imagick::flattenImages()
问题描述
我一直在我的一个图像处理脚本中使用 Imagick 和 ImageMagick。它在我的开发服务器上运行良好,具有以下配置。
PHP 版本 7.0.33 Imagick 3.4.3 ImageMagick 6.7.9-10 2016-05-05 Q16 http://www.imagemagick.org
但是在我客户的服务器上,我收到以下错误。
致命错误:未捕获的错误:调用未定义的方法 Imagick::flattenImages()
我的客户有以下配置
PHP 版本 7.2.15 Imagick 3.4.3 ImageMagick 7.0.7-11 Q16 x86_64 2017-11-20 http://www.imagemagick.org
我只是想知道 Imagick::flattenImages() 是如何从我的客户端服务器中丢失的,因为我的服务器和客户端的服务器都具有相同的 Imagick 版本
解决方案
尝试这个:
$image = new Imagick();
$image->readImage( $path_to_file );
$flattenedImage = $img->mergeImageLayers( imagick::LAYERMETHOD_FLATTEN );
Imagick::mergeImageLayers()
方法的 PHP 文档
您还可以将这些常量之一作为层方法传递:
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+)
推荐阅读
- python - 推断时测量 keras/tf 上的层执行时间的最佳方法是什么?
- haskell - 如何查询默认方法的类型?
- c# - 在表单中处理自定义内存控件
- angular - Angular 中的 Ng2-Charts:轴的显示属性是否支持“自动”
- kubernetes - 将 Kubernetes 集群 IP 更改为内部 IP
- selenium - 如何处理移动 web 窗口通知
- java - 最简单的方法:将一个字符串放在一个字符串的中间,长度不一
- vue.js - Vuejs:无法设置未定义的属性'profile_picture'
- php - 在邮递员中使用参数传递 user_id 时 Api 给出错误 404
- matlab - 在 parfor 中存储结构时出现变量分类错误