Imagick 无法将 PDF 转换为 JPEG,但 ImageMagick 可以
Posted
技术标签:
【中文标题】Imagick 无法将 PDF 转换为 JPEG,但 ImageMagick 可以【英文标题】:Imagick can't convert PDF to JPEG but ImageMagick can 【发布时间】:2012-10-07 18:34:26 【问题描述】:首先,我将 ImageMagick 与 Imagick php5 扩展结合使用了一段时间,完全没有问题,直到我不小心删除了 GhostScript。从那以后,我试图让它重新工作,但无济于事。
重新安装所有内容后,ImageMagick 能够将 PDF 转换为 JPEG。但是,当我运行 convert -list configure
时,我在 DELEGATE 列表中找不到 gs
。当我运行convert sample.pdf[1] sample.jpg
时,它仍然可以完美运行。但是,当我通过 sudo apt-get install php5-imagick
重新安装 php5-imagick 扩展程序时,当我尝试将 PDF 转换为图像时会引发错误。
Fatal error: Uncaught exception 'ImagickException' with message 'no decode delegate for this image format
upload/guide.pdf'@error/constitute.c/ReadImage/533.`
它是由以下代码抛出的:
<?php
//header("Content-type: image/jpeg");
$img = new imagick("upload/guide.pdf[1]");
$img->setImageFormat("jpg");
echo $img;
?>
我看不出问题出在哪里,因为 ImageMagick 本身工作正常,我想是 Imagick 不能很好地与 ImageMagick 交互。
【问题讨论】:
【参考方案1】:我通过不通过 Ubuntu 存储库安装 Imagick 解决了这个问题。当我运行sudo apt-get autoremove php5-imagick
并尝试通过 pecl 安装它时,它抛出一个错误并说 Imagick 已经安装(这很奇怪,因为我卸载了它并重新启动了 apache)。
所以我通过sudo pecl uninstall imagick
卸载它,然后使用sudo pecl install imagick
重新安装它,然后将extension=imagick.so
添加到php.ini,并再次重新启动apache。现在一切都恢复正常了。希望这能帮助遇到同样问题的人。
【讨论】:
以上是关于Imagick 无法将 PDF 转换为 JPEG,但 ImageMagick 可以的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中使用 imagick 将 .HEIC 转换为 JPEG
为啥 Imagick 类不能将 pdf 文件转换为图像文件?
ImageMagick/Imagick 使用原生 PHP API 将 PDF 转换为 JPG