我无法使用ImageMagick进行转换

时间:2015-06-15 16:31:30

标签: php centos imagemagick

我使用ImageMagick转换PDF文件。

我使用这个PHP代码段:

$cadena = "/usr/local/bin/convert -density 100 -colorspace rgb ".$name_path." ".$images_path."/convert.png";
shell_exec($cadena); 

其中$name_path是PDF文件目录,$images_path是图像目录。

控制台(CentOS)中的此代码完美运行。但是当我尝试在PHP中使用shell_exec()函数时,它会抛出此错误:

***warning: considering '00000000 xxxxx n' as free entry.
*** this file had erros thah were repaired  or ignored.

文件和文件夹中的权限是777。 我不知道为什么。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

首先,有两点意见:

  1. 您看到的消息不是来自ImageMagick,而是来自Ghostscript。
  2. 该消息不是错误消息,而只是警告
  3. 所以很有可能你的转换工作正常,你将在$image_path中获得所需的输出。你检查了吗?

    然后,还有三点:

    1. ImageMagick不会也无法处理输入PDF本身。它使用Ghostscript作为其委托,首先将PDF转换为图像格式,然后由ImageMagick接管以进行进一步处理。
    2. 您在CentOS控制台中执行的Ghostscript版本与您的PHP shell_exec执行的版本不一样。您应该检查两个实例。执行此操作的控制台命令是gs -version。如果您有不同的版本,这可以解释为什么您在一个实例中看到警告消息,而在另一个实例中却看不到。
    3. 您可以将-verbose添加到命令(shell_exec以及控制台中),以查看IM convert命令调用哪个Ghostscript实例“背后”....