4

我最近搬到了 MediaTemple 并按照他们的知识库文章安装了 ImageMagick 和IMagick

没有错误并且 phpinfo() 显示模块已正确安装。

当我尝试通过 PHP 在 JPG 图像上使用 IM 时,出现此错误

Uncaught exception 'ImagickException' with message 'no decode delegate for this image format 
/home/149263/domains/wer.com/html/images/pictures/post/tmp/original/' @ error/constitute.c/ReadImage/544' in /nfs/c10/h04/mnt/149263/domains/wer.com/html/application/controllers/post.php:301
Stack trace:
#0 /nfs/c10/h04/mnt/149263/domains/wer.com/html/application/controllers/post.php(301): Imagick->__construct('/home/149263/do...')
#1 [internal function]: Post->filter('punch')
#2 /nfs/c10/h04/mnt/149263/domains/wer.com/html/system/core/CodeIgniter.php(359): call_user_func_array(Array, Array)
#3 /nfs/c10/h04/mnt/149263/domains/wer.com/html/index.php(217): require_once('/nfs/c10/h04/mn...')
#4 {main} thrown in /nfs/c10/h04/mnt/149263/domains/wer.com/html/application/controllers/post.php on line 301

然而convert -list configure返回

DELEGATES     bzlib djvu fontconfig freetype gvc jpeg jp2 lcms openexr png rsvg tiff wmf x11 xml zlib

identify -list format返回

JPEG* JPEG      rw-   Joint Photographic Experts Group JFIF format (62)
JPG* JPEG      rw-   Joint Photographic Experts Group JFIF format

所以看起来安装是正确的。

ImageMagick 6.7.7-0 2012-05-22 
imagick module version  3.1.0RC1

任何建议如何解决这个问题?

4

2 回答 2

10

这是在 Ubuntu 12.04 上安装最新(撰写本文时为 6.8.4-6 版)ImageMagick 的快速而肮脏的方法。

首先删除以前通过 apt-get 安装的任何旧版本:

sudo apt-get 删除 imagemagick

然后更新 apt-get 并安装一些支持包:

sudo apt-get update
sudo apt-get install libperl-dev gcc libjpeg-dev libbz2-dev libtiff4-dev libwmf-dev libz-dev libpng12-dev libx11-dev libxt-dev libxext-dev libxml2-dev libfreetype6-dev liblcms1-dev libexif-dev perl libjasper-dev libltdl3-dev graphviz pkg-config

使用 wget 从 ImageMagick.org 获取源代码。

下载源文件后,解压缩:

tar -xzf ImageMagick.tar.gz

现在配置并制作:

cd ImageMagick-6.8.4-6
./configure
sudo make
sudo make install

为了避免错误,例如:

convert: error while loading shared libraries: libMagickCore.so.2: cannot open shared object file: No such file or directory

将以下行添加到~/.bashrc

export LD_LIBRARY_PATH=/usr/local/lib

更新:如果您仍然遇到上述错误,请尝试运行 ldconfig:

sudo ldconfig

您可以通过以下方式确认安装和可用格式:

identify -list format
于 2013-04-04T05:46:22.227 回答
0

您是否尝试过通过 exec() 使用 Imagemagick 运行一些代码来查看问题出在 Imagemagick 还是 Imagick 上?

于 2012-05-22T20:23:00.213 回答