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:
- Загрузите последний дистрибутив php_imagick для своей версии PHP с http://windows.php.net/downloads/pecl/releases/imagick/ (например, php_imagick-3.4.3-7.1-ts-vc14-x64.zip).
- Извлеките только php_imagick.dll из этого архива в папку "php / ext".
- Запустите phpinfo() и проверьте значение в строке "Imagick, скомпилированный с версией ImageMagick" (у меня было: "ImageMagick 6.9.3-7 Q16 x64 ...").
- Теперь перейдите на http://windows.php.net/downloads/pecl/deps/ и загрузите правильную версию файла Imagick-*.zip (у меня было: ImageMagick-6.9.3-7-vc14-x64.zip).
- Извлеките этот архив и скопируйте все файлы *.dll из папки "/bin" в папку "php / ext" (около 145 файлов).
- Перезапустите сервер и проверьте phpinfo(). ImageMagick теперь поддерживает более 230 форматов.
Иногда phpinfo() показывает, что imagick поддерживает все форматы, но сценарии php не отвечают - в этом случае дважды проверьте, что вы загружаете правильную версию Imagick - *. Zip для своих установок. (ts/nts, VC11/VC14, x64/x86)