我已使用此处定义的步骤在WAMP中安装了Imagick 3.4.4:https://newsinfo-blog.blogspot.com/2015/03/install-imagick-on-wamp-server.html
然后我使用以下代码将PDF转换为JPEG图像:
$im = new Imagick();
$im->setResolution(300,300);
$im->readImage($_SERVER['DOCUMENT_ROOT'] . '/codeigniter/assets/lofthouse.pdf[0]');
$im->setImageFormat('jpeg');
$im->writeImage('thumblofthouse.jpg');
$im->clear();
$im->destroy();
但是我收到以下错误消息:
发生未知错误类型:ImagickException
消息:NoDecodeDelegateForThisImageFormat`PDF'@ 错误/constitute.c/ReadImage/509
我在做什么错?如何将PDF的首页另存为图像?
我注意到当我尝试时:
print_r(Imagick::queryFormats());
结果是一个空数组。
编辑:
这些是我到目前为止已采取的步骤:
- 下载了ImageMagick https://imagemagick.org/script/download.php#windows并通过安装程序安装了它,并将其放在我的D:\ software文件夹中。
- 已下载并安装了Ghostscript:https://www.ghostscript.com/download/gsdnld.html,将其放置在D:\文件夹中,并勾选了该复选框以生成字体。
- 将php_imagick.dll文件复制到我的/ ext /文件夹中
- 将所有CORE_RL_ *文件复制到apache / bin /文件夹
- 在我的PATH变量中将根路径添加到ImageMagick的安装目录(并放在PHP行上方)
EDIT2: 我也已经完成了以下步骤,尽管我不确定是否需要这些步骤
- 创建了一个名为MAGICK_HOME的新系统变量,并使其指向imagemagick根目录。
- 通过在policymap属性中添加
<policy domain="module" pattern="{PS,PDF,XPS}" rights="read|write"/>
来修改ImageMagick中的policy.xml。
这是phpinfo()返回的内容:
imagick module enabled
imagick module version 3.4.4
imagick classes Imagick,ImagickDraw,ImagickPixel,ImagickPixelIterator,ImagickKernel
Imagick compiled with ImageMagick version ImageMagick 7.0.7-11 Q16 x86 2017-11-23 http://www.imagemagick.org
Imagick using ImageMagick library version ImageMagick 7.0.7-11 Q16 x86 2017-11-23 http://www.imagemagick.org
ImageMagick copyright Copyright (C) 1999-2015 ImageMagick Studio LLC
ImageMagick release date 2017-11-23
ImageMagick number of supported formats: 0
EDIT3:我可以使用ImageMagick通过命令行将PDF转换为JPG。完成上述所有步骤后,我现在收到以下错误:
Type: ImagickException
Message: no decode delegate for this image format `PDF' @ error/constitute.c/ReadImage/509