我无法使用 ImageMagick 进行转换

I can't convert with 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. 您看到的消息不是来自 ImageMagick,而是来自 Ghostscript。
  2. 该消息不是 错误 消息,而只是 警告

因此很可能您的转换确实有效并且您将在 $image_path 中获得所需的输出。你检查了吗?

然后,再补充三点:

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