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 安装的解决方案:
- 从 http://windows.php.net/downloads/pecl/releases/imagick/ 下载适用于您的 PHP 版本的最新 php_imagick 分发包(例如 php_imagick-3.4.3-7.1-ts-vc14-x64.zip)
- 仅 php_imagick.dll 从此存档提取到您的 "php/ext" 文件夹。
- 运行 phpinfo() 并检查第 "Imagick compiled with ImageMagick version" 行的值(我的是:"ImageMagick 6.9.3-7 Q16 x64 ...")。
- 现在转到 http://windows.php.net/downloads/pecl/deps/ 并下载正确版本的 Imagick-*.zip 文件(我的是:ImageMagick-6.9.3-7-vc14-x64.zip)。
- 提取此存档并将所有 *.dll 文件从“/bin”文件夹复制到您的 "php/ext" 文件夹(大约 145 个文件)。
- 重新启动服务器并检查 phpinfo()。 ImageMagick 现在支持大约 230 多种格式。
有时 phpinfo() 显示 imagick 支持所有格式,但 php 脚本没有响应 - 在这种情况下,请仔细检查您是否为您下载了正确版本的 Imagick-*.zip安装。 (ts/nts, VC11/VC14, x64/x86)
我在 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 安装的解决方案:
- 从 http://windows.php.net/downloads/pecl/releases/imagick/ 下载适用于您的 PHP 版本的最新 php_imagick 分发包(例如 php_imagick-3.4.3-7.1-ts-vc14-x64.zip)
- 仅 php_imagick.dll 从此存档提取到您的 "php/ext" 文件夹。
- 运行 phpinfo() 并检查第 "Imagick compiled with ImageMagick version" 行的值(我的是:"ImageMagick 6.9.3-7 Q16 x64 ...")。
- 现在转到 http://windows.php.net/downloads/pecl/deps/ 并下载正确版本的 Imagick-*.zip 文件(我的是:ImageMagick-6.9.3-7-vc14-x64.zip)。
- 提取此存档并将所有 *.dll 文件从“/bin”文件夹复制到您的 "php/ext" 文件夹(大约 145 个文件)。
- 重新启动服务器并检查 phpinfo()。 ImageMagick 现在支持大约 230 多种格式。
有时 phpinfo() 显示 imagick 支持所有格式,但 php 脚本没有响应 - 在这种情况下,请仔细检查您是否为您下载了正确版本的 Imagick-*.zip安装。 (ts/nts, VC11/VC14, x64/x86)