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

所以我检查了所有安装和一些 Whosebug 问题,但似乎没有任何效果。更多信息。

convert -list 配置输出

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 功能都按预期工作。

在此 post 之后,我找到了 a solution。我需要的是 Perl 模块,而不是 PHP(相同的错误消息)。

下载需要的from here,配置安装,默认为/usr/local.

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

注意安装路径,默认在/usr/local(所以你可能需要将你的PHP编译库移动到其他地方,或者改变你的路径)。

顺便说一下,你肯定需要调用链接器,你的情况肯定是错的:

sudo ldconfig /usr/local/lib