我在使用ImageMagick和Ghostscript时遇到了一些麻烦 - 从安装、测试到实际使用这个软件都很困难。有没有人有什么建议?
我在使用ImageMagick和Ghostscript时遇到了一些麻烦 - 从安装、测试到实际使用这个软件都很困难。有没有人有什么建议?
我刚花了三个小时让ImageMagick和PHP配合起来将PDF转换为JPG。我觉得在这里写下来,记录一下所有的关键词和我所犯的错误,这样下一个新手就可以节省一些时间。
在Windows 7 x64和Vista x64上测试,使用PHP 5.2.8和Apache 2.2.11。
你需要Ghostscript和ImageMagick。我下载了gs871w64.exe
和ImageMagick-6.6.3-0-Q16-windows-x64-dll.exe
。
进行ImageMagick的基本安装(我现在称它为IM)。双重检查系统路径变量以确保您可以从任何地方使用IM。它应该指向IM目录。在cmd
中使用以下行测试安装:convert test.gif test.jpg
(假设您有test.gif
)。正常工作。
测试PDF转换(convert test.pdf test.jpg
)。您应该会收到有关“gswin32c.exe”、“Postscript delegate failed”和“missing an image filename”的(长)消息。这意味着IM找不到PDF“翻译器”。你需要Ghostscript。
gswin32 test.pdf
测试安装,您应该可以在GS查看器中看到您的文件弹出。重要提示:在Windows中 gs不起作用('gs' is not recognized as an internal or external command, operable program, or batch file.
)。您需要使用 gswin32。
回到IM测试:convert test.pdf test.jpg
现在应该可以工作。
现在转到PHP-编写此脚本:
$out = shell_exec("convert blah.pdf blah2.jpg 2>&1");
echo $out;
2>&1
将所有错误移动到标准输出,以便更好地诊断问题。现在,你的PHP脚本可能可以在cmd提示符中运行,但是在浏览器中运行时没有任何反应。拍一下自己的额头,重新启动Apache。
pant 虽然详尽而且可能很基础,但这是对大约20页半有用线索的希望有益的总结。Steve已提供了如何从PHP运行ImageMagick的命令行版本的指南。在安装ImageMagick的扩展版本时,我想详细解释一下这些不同组件是如何共同工作的。
首先,您需要安装PHP扩展。它基本上是PHP和ImageMagick功能之间的适配器。
php_imagick.dll
从扩展ZIP复制到PHP扩展目录中然而,这还不够。 php_imagick.dll
不包含任何ImageMagick功能,扩展捆绑的CORE_RL_...
DLL也不完整。您还需要从ImageMagick发行版中获取更多DLL。
理论上版本不必完全匹配,但显然在ImageMagick 6.8.1和6.8.8之间的某个地方,函数MagickGetImageMatte
已从DLL中删除,因此最安全的方法是找到与Imagick扩展程序构建的完全相同的ImageMagick版本:
不需要安装 ImageMagick。实际上,如果路径中有不兼容的ImageMagick,则PHP扩展可能会失败。
这适用于ImageMagick的命令行版本 (convert
) 和上述描述的 PHP 扩展。
读取Postscript文件族的文件需要 Ghostscript。
ImageMagick将按以下步骤查找Ghostscript:
GS_DLL
条目,指向gswin32.dll
的路径,则它将使用该条目并完全忽略委托。delegates.xml
放置在php5(n)ts.dll
或convert.exe
旁边或在~\.magick
中来覆盖它。@PS_Delegate@
,则会将其替换为gswin32c.exe
,然后继续查找该EXE是否在PATH中。您可以使用gswin32c.exe
或甚至是 ImageMagick 应调用的 gswin64c.exe
的完整路径替换此字符串。C:\ghostscript\bin\
添加到了我的PATH变量中,但是当我调用readImageFile(...)时仍然出现了Uncaught exception 'ImagickException' with message 'NoDecodeDelegateForThisImageFormat
的异常。 - user3383675访问https://www.ghostscript.com/download.html,在“Postscript和PDF解释器/渲染器”下找到Ghostscript并单击。这将打开一个新页面: https://www.ghostscript.com/download/gsdnld.html
从该页面上安装Ghostscript 9.54.0 for Windows (64 bit)。
下载完成后,在Windows机器上安装它。