2012-05-22 81 views
3

我最近转移到MediaTemple并安装了ImageMagick和IMagick,他们的知识库文章hereImageMagick缺少解码代理

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

当我试图通过PHP使用IM JPG图片上我得到这个错误

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 

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

回答

0

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

+0

哎呀,BONZO THX为回复 - 这是我的不好,文件名没有正确传递到即时通讯,因此它崩溃 - 提示是第二行的错误日志上面显示没有文件名 – pepe

+0

很高兴其排序;尽管IM的错误报告有时会令人困惑。 – Bonzo

9

在Ubuntu 12.04上安装最新的(本文撰写时为6.8.4-6版本)ImageMagick,这里有一个快速和肮脏的问题。

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

sudo易于得到删除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