【问题标题】:Suddenly getting ImageMagick "no decode delegate" errors?突然出现 ImageMagick“无解码委托”错误?
【发布时间】:2016-05-15 20:06:02
【问题描述】:

我经营一个网站,允许人们上传 JPEGS,然后调整大小并在其顶部应用 .png 水印。

截至今天,很多上传都失败了。

Uncaught ImagickException: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/501

奇怪的是,有些仍然可以正常工作,带有水印。

前几天我做了一个yum update,它安装了一个新版本的 ImageMagick 和 -devel 和 -last-libs,我猜这破坏了一些东西。 至于一些上传仍然有效的事实 - 也许我的一些 php-fpm 进程仍在以某种方式使用旧版本?

我在 CentOS 6 上。

谁能指点我快速解决这个问题,我的网站现在有数百名访问者,如果我不能解决这个问题,我会很伤心!

谢谢。

convert -version 给了我这个:

Version: ImageMagick 6.8.9-1 Q16 x86_64 2014-05-28 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib freetype jpeg lcms tiff x zlib

(虽然我不知道在事情破裂之前它显示了什么)。

这些是我目前安装的包:

ImageMagick-6.7.2.7-4.el6_7.x86_64
ImageMagick-devel-6.7.2.7-4.el6_7.x86_64
ImageMagick-last-libs-6.9.4.1-1.el6.remi.x86_64
php70-php-pecl-imagick-3.4.2-1.el6.remi.x86_64

【问题讨论】:

  • 奇怪的是它不仅仅是 png。我注释掉了这些代码行,然后我得到了一个与“JPEG”相同的错误消息,即使显示了 jpeg 委托!
  • 也更新 imagick。来自手册“一旦编译,Imagick 应该使用与它编译时相同的 ImageMagick 版本运行。已知对不同版本的 ImageMagick 运行会导致稳定性问题,因此不推荐或不支持。”
  • 我已将当前安装的项目添加到原始帖子中。根据 yum 的说法,一切都是最新的。
  • 几乎没有! 6.7 版至少有 2 年以上的历史了!
  • 我有 yum downgraded ImageMagick-last-libs (6.9.4.1 -> 6.9.3.10) 和 php70-php-pecl-imagick (3.4.2 -> 3.4.1) 和一切现在好像没事了。

标签: php imagemagick imagick


【解决方案1】:

升级后是否重启了服务器(apache 或 fpm)?

对于每个新版本,编码器的路径都会改变(因为版本是路径的一部分),因此需要重新启动服务器。

见:https://github.com/remicollet/remirepo/issues/33

【讨论】:

  • 我没有。太棒了,谢谢。由于某些进程似乎仍在工作,我认为是新汇集的那些没有工作。我想做的最后一件事是重新启动服务器并彻底破坏一切!现在重新更新并重新启动,一切都很好,谢谢!
猜你喜欢
  • 2015-08-01
  • 1970-01-01
  • 2016-08-26
  • 2012-03-17
  • 1970-01-01
  • 1970-01-01
  • 2017-12-21
  • 2021-04-16
  • 1970-01-01
相关资源
最近更新 更多