我正在使用 imagick 3.0.1 和 phmagick (http://www.francodacosta.com/phMagick/download)。无论如何,当我尝试将 PDF 转换为 JPEG 时,两者都会给我同样的错误。
例如: Postscript 委托(delegate)失败`/tmp/magick-bfxIrUJ5':没有这样的文件或目录@error/pdf.c/ReadPDFImage/669
我正在使用 Ghostcript-9.05(在/usr/local/bin/gs 上运行)。 还有 ImageMagick-6.7.6-8(在/usr/local/bin/convert 上运行)。
我已经检查了文件夹的权限 (755)。 ImageMagick 在终端上运行得非常好。
例如,我的 PHP 使用 Imagick:
//use imagick
$im = new imagick( '/pdf/553571072.pdf' );
// convert to jpg
$im->setImageColorspace(255);
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setImageFormat('jpeg');
//write image on server
$im->writeImage('/jpg/553571072.jpg');
顺便说一句,Imagick 它出现在我的 phpinfo() 中。我在 linux/apache/amd64 上工作。
任何建议将不胜感激!
最佳答案
好的,感谢 Nuno Franco da Costa ( http://www.francodacosta.com/ ) 的帮助,这终于成功了。
问题是我的 GhostScript 路径对于 Shell 是正确的,但对于 System 和 PHP 是错误的。要更正您应该将 /usr/local/bin/gs
文件链接到 /usr/bin/gs
。
从 Shell 执行以下操作:
[root@din ~]# convert -list configure | grep -i delegates
DELEGATES bzlib fontconfig freetype jpeg jng png tiff x11 xml zlib
检查 /usr/bin
中是否已经存在 gs
文件。如果是,我们将创建它的备份。
如果没有/usr/bin/gs
可以跳过这一步
[root@din ~]# ls -l /usr/bin/gs
-rwxr-xr-x 1 root root 6024 Sep 30 2010 /usr/bin/gs
[root@din ~]# mv /usr/bin/gs /usr/bin/gs.orig
现在创建从 /usr/local/bin/gs
到 /usr/bin/gs
[root@din ~]# sudo ln -s /usr/local/bin/gs /usr/bin
这应该可以解决问题。非常感谢大家。
关于php - Imagick 和 phmagick : Postscript delegate failed/No such file or directory 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455985/