ImageMagick No decode delegate for this image format

孤街醉人 提交于 2020-01-22 20:02:07

问题


I work under windows and wamp server.

this is my PHP code with Imagick

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

where $_SERVER['DOCUMENT_ROOT'].'/'.$this->_name displays :

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

I checked that image and it does exist in the folder.

But Imagick throws an exception :

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

I looked for a solution, but didn't find any, how can I fix this?? thank you

Update: This is the result when I type convert -version in the command line :

  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

update

This is the phpinfo of imagick.

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


回答1:


Seems that your ImageMagick PHP module does not support any image formats.

Try to find other ImageMagick installation or install PHP from the scratch.

Also - seems that there is already question/answer in SO about that




回答2:


You should run

convert -version

and report the output. On my system it is

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

Does your output include png as one of the built-in 'delegates'?

If not, update your installation, or build from current sources.




回答3:


Finally I found solution for my windows openserver/nginx/php-fpm installation:

  1. Download latest php_imagick distributive for your version of PHP from http://windows.php.net/downloads/pecl/releases/imagick/ (e.g. php_imagick-3.4.3-7.1-ts-vc14-x64.zip)
  2. Extract only php_imagick.dll from this archive to your "php/ext" folder.
  3. Run phpinfo() and check value at line "Imagick compiled with ImageMagick version" (mine was: "ImageMagick 6.9.3-7 Q16 x64 ...").
  4. Now go to http://windows.php.net/downloads/pecl/deps/ and download correct version of Imagick-*.zip file (mine was: ImageMagick-6.9.3-7-vc14-x64.zip).
  5. Extact this archive and copy all *.dll files from "/bin" folder to yout "php/ext" folder (about 145 files).
  6. Restart server and check phpinfo(). ImageMagick now supports about 230+ formats.

Sometimes phpinfo() displays that imagick supports all formats, but php scripts are not respond - in this case double check that you download correct version of Imagick-*.zip for your installations. (ts/nts, VC11/VC14, x64/x86)



来源:https://stackoverflow.com/questions/30005612/imagemagick-no-decode-delegate-for-this-image-format

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!