我无法使用 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。
我不知道为什么。有人可以帮助我吗?
首先,两个观察:
- 您看到的消息不是来自 ImageMagick,而是来自 Ghostscript。
- 该消息不是 错误 消息,而只是 警告。
因此很可能您的转换确实有效并且您将在 $image_path
中获得所需的输出。你检查了吗?
然后,再补充三点:
- ImageMagick 本身不会也不能处理输入的 PDF。它使用 Ghostscript 作为其 delegate 首先将 PDF 转换为图像格式,然后由 ImageMagick 接管以进行进一步处理。
- 您在CentOS控制台执行的Ghostscript版本不一定与您PHP
shell_exec
执行的版本相同。您应该检查这两种情况。执行此操作的控制台命令是 gs -version
。如果您有不同的版本,这可以解释为什么您在一个实例中看到警告消息,而在另一个实例中却看不到。
- 您可以将
-verbose
添加到您的命令中(shell_exec
以及在控制台中)以查看 IM convert
命令调用哪个 Ghostscript 实例 "behind your back".. ..
我正在使用 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。 我不知道为什么。有人可以帮助我吗?
首先,两个观察:
- 您看到的消息不是来自 ImageMagick,而是来自 Ghostscript。
- 该消息不是 错误 消息,而只是 警告。
因此很可能您的转换确实有效并且您将在 $image_path
中获得所需的输出。你检查了吗?
然后,再补充三点:
- ImageMagick 本身不会也不能处理输入的 PDF。它使用 Ghostscript 作为其 delegate 首先将 PDF 转换为图像格式,然后由 ImageMagick 接管以进行进一步处理。
- 您在CentOS控制台执行的Ghostscript版本不一定与您PHP
shell_exec
执行的版本相同。您应该检查这两种情况。执行此操作的控制台命令是gs -version
。如果您有不同的版本,这可以解释为什么您在一个实例中看到警告消息,而在另一个实例中却看不到。 - 您可以将
-verbose
添加到您的命令中(shell_exec
以及在控制台中)以查看 IMconvert
命令调用哪个 Ghostscript 实例 "behind your back".. ..