发行与Imagick并与phmagick:后记委托失败/没有这样的文件或目录(Issue with

2019-06-24 04:06发布

我使用imagick 3.0.1也phmagick(http://www.francodacosta.com/phMagick/download)。 不管如何,两者都让我有相同类型的错误,当我尝试将PDF转换为JPEG。

例如: 后记委托失败'的/ tmp / magick-bfxIrUJ5' :没有这样的文件或目录@错误/ pdf.c / ReadPDFImage / 669

我使用Ghostcript-9.05(放在/ usr / local / bin目录/ GS运行)。 此外ImageMagick的-6.7.6-8(放在/ usr / local / bin目录/转换运行)。

我已经选中文件夹的权限(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。

任何意见,将不胜感激!

Answer 1:

OK,这最后的作品,感谢努诺·佛朗哥·达科斯塔的帮助( http://www.francodacosta.com/ )。

问题是,我的GhostScript的路径是为壳牌OK,但它是错误的,系统的和PHP。 要更正您需要将您/usr/local/bin/gs文件,以/usr/bin/gs

从做程序中运行以下:

[root@din ~]# convert -list configure | grep -i delegates
DELEGATES     bzlib fontconfig freetype jpeg jng png tiff x11 xml zlib

检查,看是否有gs文件中已经存在/usr/bin 。 如果确实如此,我们将创建一个备份。
如果没有/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

这应该解决的问题。 非常感谢球员。



Answer 2:

我的捐款给在接受答案的意见,一点点修正提出了“纯PHP解决方案”:一是必须在扩展默认的路径前添加变量名 ,所以
putenv( getenv('PATH') . ':/usr/local/bin' ); 将无法正常工作,但
putenv( 'PATH=' . getenv('PATH') . ':/usr/local/bin' );



Answer 3:

我正在使用ImageMagick这些问题ImageMagick 6.7.7-10使用Ghostscript 9.10

原来,PDF文件被损坏,虽然一些较新版本的GS可以阅读,此旧版本不能,提示以下错误。

   **** Warning:  An error occurred while reading an XREF table.
   **** The file has been damaged.  This may have been caused
   **** by a problem while converting or transfering the file.
   **** Ghostscript will attempt to recover the data.

在Linux下,你可以通过PDFTK先通过PDF的:

pdftk 'bad.pdf' output 'fixed.pdf'

在那之后,一切都为我工作在Ubuntu。



文章来源: Issue with Imagick and also with phmagick: Postscript delegate failed / No such file or directory