简体   繁体   中英

ImageMagick No decode delegate for this image format

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

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.

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

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/ (eg 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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM