ImageMagick Нет делегата декодирования для этого формата изображения

Я работаю под Windows и Wamp Server.

это мой код PHP с Imagick

$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

Я проверил это изображение, и оно существует в папке.

Но Имаджик бросает исключение:

Uncaught исключение 'ImagickException' с сообщением 'no делегат декодирования для этого формата изображения `D:/Sources/my_project/public/media/2/9/1/05201502/55450b10d8ea705201502_9.PNG' @ error/constitute.c/ReadImage/555' в D:\Sources\my_project\library\project\Image.php в строке 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

Обновить

Это phpinfo Imagick.

ImageMagick количество поддерживаемых форматов: 0
Поддерживаемые форматы ImageMagick: нет значения

3 ответа

Решение

Кажется, что ваш PHP-модуль ImageMagick не поддерживает форматы изображений.

Попробуйте найти другую установку ImageMagick или установить PHP с нуля.

Также - кажется, что в SO уже есть вопрос / ответ

Ты должен бежать

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 как один из встроенных "делегатов"?

Если нет, обновите вашу установку или соберите из текущих источников.

Наконец я нашел решение для моей установки Windows openserver / nginx / php-fpm:

  1. Загрузите последний дистрибутив php_imagick для своей версии PHP с http://windows.php.net/downloads/pecl/releases/imagick/ (например, php_imagick-3.4.3-7.1-ts-vc14-x64.zip).
  2. Извлеките только php_imagick.dll из этого архива в папку "php / ext".
  3. Запустите phpinfo() и проверьте значение в строке "Imagick, скомпилированный с версией ImageMagick" (у меня было: "ImageMagick 6.9.3-7 Q16 x64 ...").
  4. Теперь перейдите на http://windows.php.net/downloads/pecl/deps/ и загрузите правильную версию файла Imagick-*.zip (у меня было: ImageMagick-6.9.3-7-vc14-x64.zip).
  5. Извлеките этот архив и скопируйте все файлы *.dll из папки "/bin" в папку "php / ext" (около 145 файлов).
  6. Перезапустите сервер и проверьте phpinfo(). ImageMagick теперь поддерживает более 230 форматов.

Иногда phpinfo() показывает, что imagick поддерживает все форматы, но сценарии php не отвечают - в этом случае дважды проверьте, что вы загружаете правильную версию Imagick - *. Zip для своих установок. (ts/nts, VC11/VC14, x64/x86)

Другие вопросы по тегам