问题
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:
- 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)
- Extract only php_imagick.dll from this archive to your "php/ext" folder.
- Run phpinfo() and check value at line "Imagick compiled with ImageMagick version" (mine was: "ImageMagick 6.9.3-7 Q16 x64 ...").
- 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).
- Extact this archive and copy all *.dll files from "/bin" folder to yout "php/ext" folder (about 145 files).
- 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