php 涉及 pdf 时出现 imagick 错误

php imagick error when pdf involved

当我尝试通过 PHP imagick 将 PDF 的第一页转换为 JPG 时,我收到 HTTP 500 错误且没有登录 php_errors.log。

来自 IIS 的解释:FastCGI 进程意外退出

错误代码:0xc0000417

C:\Windows\Temp创建了两个文件,第一个是阅读的PDF;另一个是0 Kb长度。

我能够使用 ImageMagick 执行命令行转换(转换 some.pdf some.jpg)。因此,ImageMagick 和 GhostScript 运行 没问题。另外,我可以从 PHP 脚本在 JPG 和 GIF 之间转换。

PHP代码:

$im = new Imagick();
$im->setResolution(300,300);
$im->readimage('poster.pdf[0]'); 
$im->setImageFormat('jpeg');    
$im->writeImage('poster.jpg'); 
$im->clear(); 
$im->destroy();

我的环境:

所以,任何人都可以给我一些指导来调试这个错误并获得 运行 吗?

正如 Danack 所建议的,ImageMagick 必须 从 imagick 所在的相同位置下载。必须遵守编译器版本和处理器架构以匹配 PHP 和 GhospScript(在我的例子中是 VC9、x86)。

然而,并非此存储库中可用的所有 ImageMagick 版本似乎都与 imagick 和/或 GhostScript 的版本一致。在我的例子中,最终起作用的组合(第二次尝试)是:

  • 想象 3.1.2
  • ImageMagick 6.8.8
  • GhostScript 9.07