web-dev-qa-db-fra.com

ImageMagick Aucun délégué de décodage pour ce format d'image

Je travaille sous Windows et le serveur Wamp.

c'est mon PHP code avec Imagick

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

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

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

J'ai vérifié cette image et elle existe dans le dossier.

Mais Imagick lève une exception:

Exception non capturée 'ImagickException' avec le message 'no decode delegate Pour ce format d'image `D: /Sources/my_project/public/media/2/9/1/05201502/55450b10d8ea705201502_9.PNG' @ error/constit.c/ReadImage/555 'dans D:\Sources\mon_projet\bibliothèque\projet\Image.php à la ligne 225

J'ai cherché une solution, mais je n'en ai trouvé aucune, comment puis-je résoudre ce problème ?? Je vous remercie 

Update: Voici le résultat lorsque je tape convert -version dans la ligne de commande:

  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

mettre à jour

C'est le phpinfo de imagick.

Nombre de formats pris en charge par ImageMagick: 0
Formats pris en charge par ImageMagick: aucune valeur

6
SmootQ

Il semble que votre module ImageMagick PHP ne supporte pas les formats any image.

Essayez de trouver une autre installation ImageMagick ou installez PHP à partir de rien.

Aussi - semble qu'il y a déjà question/réponse dans SO à ce sujet

6
Kalle Volkov

Tu devrais courir

convert -version

et signaler la sortie. Sur mon système c'est

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

Votre sortie inclut-elle png parmi les 'délégués' intégrés ?

Sinon, mettez à jour votre installation ou compilez-vous à partir des sources actuelles.

5
Kurt Pfeifle

Enfin, j'ai trouvé une solution pour mon installation windows openserver/nginx/php-fpm:

  1. Téléchargez la dernière version distribuée php_imagick pour votre version de PHP depuis http://windows.php.net/downloads/pecl/releases/imagick/ (par exemple, php_imagick-3.4.3-7.1-ts- vc14-x64.Zip)
  2. Extrayez uniquement php_imagick.dll de cette archive dans votre dossier "php/ext".
  3. Exécutez phpinfo () et vérifiez la valeur à la ligne "Imagick compilé avec la version d'ImageMagick" (la mienne était: "ImageMagick 6.9.3-7 Q16 x64 ...").
  4. Maintenant, allez à http://windows.php.net/downloads/pecl/deps/ et téléchargez la version correcte de Imagick - * .zip (le mien était: ImageMagick-6.9.3-7-vc14-x64. Zip *: français).
  5. Extrayez cette archive et copiez tous les fichiers * .dll du dossier "/ bin" dans votre dossier "php/ext" (environ 145 fichiers).
  6. Redémarrez le serveur et vérifiez phpinfo (). ImageMagick prend désormais en charge environ 230 formats.

Parfois, phpinfo () indique que imagick prend en charge tous les formats, mais les scripts php ne répondent pas. Dans ce cas, vérifiez à nouveau que vous avez téléchargé la version correcte de Imagick - *. Zip pour vos installations. (ts/nts, VC11/VC14, x64/x86)

2
Andrey Radomanov