当涉及PDF时,PHP 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(转换一些。pdf一些。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();
我的环境:

  • Windows 7 Professional 64位
  • IIS 7.5
  • PHP 5.3.6 NTS VC9PHP imagick扩展v.3.1.2 (5.3 NTS VC9 x86, from PECL)
  • ImageMagick-6.7.7-0-Q16-windows-dll (x86)
  • GhostScript 9.07 win32 (x86)
  • Microsoft Visual c++ 2008可重新发布的x86
  • 将ImageMagick的路径添加到Path环境变量
  • 文件夹C:'Windows'TempC:'imagemagick中IUSR和IIS_IUSRS的权限。

所以,谁能给我一些指导来调试这个错误,让事情运行?

正如Danack建议的,ImageMagick 必须从imagick所在的位置下载。编译器版本和处理器架构必须与PHP和GhospScript(在我的情况下,VC9, x86)相匹配。

然而,并不是所有版本的ImageMagick可用在这个存储库似乎与那些imagick和/或GhostScript一致。在我的例子中,最后成功的组合是:

  • imagick 3.1.2
  • ImageMagick 6.8.8
  • 内容9.07