PHP Imagick-ImagickException(代码:420):此图像格式*.jpg没有解码委托


PHP Imagick - ImagickException(code: 420): no decode delegate for this image format *.jpg

昨天我包括ondrejs PPA并安装了PHP5、5.6和7。除了imagick功能外,一切都很好。确切的例外是:

request.CRITICAL: Uncaught PHP Exception ImagickException: "no decode delegate
for this image format `lorem.jpg' @ error/constitute.c/ReadImage/544" at 
ImageManager.php line 72

所以我检查了所有的安装和一些堆叠的问题,但似乎什么都不起作用。更多信息。

转换-列表配置输出

DELEGATES     bzlib djvu fftw fontconfig freetype jbig jpeg jng jp2 lcms2 lqr lzma openexr pango png rsvg tiff x11 xml wmf zlib

但是phpinfo()

ImageMagick supported formats   no value

有什么想法吗?

我的解决方案是,ImageMagick和GraphicsMagick都启用了PHP扩展。我不知道为什么,但在安装自定义PPA的过程中似乎出现了问题,或者至少没有像预期的那样。

禁用GraphicsMagick扩展解决了这个问题,php.ini中正确显示的所有支持的格式以及所有ImageMagick函数都能正常工作。

在这篇文章之后,我找到了一个解决方案。我需要的是Perl模块,而不是PHP(同样的错误消息)。

从这里下载您需要的内容,配置并安装,默认情况下为/usr/local

然后,您可以使用正确的选项重新编译imageMagick,编译过程现在将找到依赖项。(在系统中添加lib的路径显然是不够的)。

注意安装路径,默认情况下为/usr/local(因此您可能需要将PHP编译的库移到其他地方,或者更改路径)。

顺便说一句,你肯定需要调用链接器,当然你的情况下出了什么问题:

sudo ldconfig /usr/local/lib