ImageMagick 没有此图像格式的解码委托

ImageMagick No decode delegate for this image format

我在 windows 和 wamp 服务器下工作。

这是我使用 Imagick

的 PHP 代码
$imagick = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/' . $this->_name);

其中 $_SERVER['DOCUMENT_ROOT'].'/'.$this->_name 显示:

D:/Sources/my_project/public/media/2/9/1/05201502/55450e1b6543a05201502_9.PNG

我检查了该图像,它确实存在于文件夹中。

但是 Imagick 抛出异常:

Uncaught exception 'ImagickException' with message 'no decode delegate for this image format `D:/Sources/my_project/public/media/2/9/1/05201502/55450b10d8ea705201502_9.PNG' @ error/constitute.c/ReadImage/555' in D:\Sources\my_project\library\project\Image.php on line 225

我寻找解决方案,但没有找到,我该如何解决??谢谢

更新: 这是我在命令行中输入 convert -version 时的结果:

  Version: ImageMagick 6.8.8-4 Q16 x86 2014-01-29 http://www.imagemagick.org
  Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
  Features: DPC Modules OpenMP
  Delegates: bzlib cairo freetype jbig jng jp2 jpeg lcms lqr pangocairo \
             png ps rsv g tiff webp xml zlib

更新

这是imagick的phpinfo

ImageMagick number of supported formats: 0
ImageMagick supported formats: no value

你应该运行

convert -version

并报告输出。在我的系统上是

Version: ImageMagick 6.9.0-0 Q16 x86_64 2014-12-06 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc jbig \
                      jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps \
                      rsvg tiff webp wmf x xml zlib

您的输出是否包含 png 作为内置 'delegates' 之一?

如果不是,请更新您的安装,或从当前源构建。

您的 ImageMagick PHP 模块似乎不支持 任何 图像格式。

尝试寻找其他 ImageMagick 安装或从头开始安装 PHP。

此外 - SO 中似乎已经 question/answer 关于那个

我终于找到了 windows openserver/nginx/php-fpm 安装的解决方案:

  1. http://windows.php.net/downloads/pecl/releases/imagick/ 下载适用于您的 PHP 版本的最新 php_imagick 分发包(例如 php_imagick-3.4.3-7.1-ts-vc14-x64.zip)
  2. 仅 php_imagick.dll 从此存档提取到您的 "php/ext" 文件夹。
  3. 运行 phpinfo() 并检查第 "Imagick compiled with ImageMagick version" 行的值(我的是:"ImageMagick 6.9.3-7 Q16 x64 ...")。
  4. 现在转到 http://windows.php.net/downloads/pecl/deps/ 并下载正确版本的 Imagick-*.zip 文件(我的是:ImageMagick-6.9.3-7-vc14-x64.zip)。
  5. 提取此存档并将所有 *.dll 文件从“/bin”文件夹复制到您的 "php/ext" 文件夹(大约 145 个文件)。
  6. 重新启动服务器并检查 phpinfo()。 ImageMagick 现在支持大约 230 多种格式。

有时 phpinfo() 显示 imagick 支持所有格式,但 php 脚本没有响应 - 在这种情况下,请仔细检查您是否为您下载了正确版本的 Imagick-*.zip安装。 (ts/nts, VC11/VC14, x64/x86)