Imagick是一个使用ImageMagick API创建和修改图像的本机PHP扩展。这个名字引起了一些混乱,因为人们认为ImageMagick和Imagick是一回事,但事实并非如此。您可以在没有Imagick的情况下使用ImageMagick但是您需要安装Imagick和ImageMagick才能在PHP代码中运行它。
您可以使用PHP代码检查是否安装了Imagick扩展程序:<?php
if (!extension_loaded('imagick')){
echo 'imagick not installed';
}
预安装说明
使用phpinfo()函数在空脚本中执行此函数来获取基本环境信息(关注以下图片红框中信息):
环境架构:x86
线程安全:enabled (注意:enabled代表-TS:支持线程安全; 如果是disabled则代表-NTS:代表线程安全禁用)
环境编辑器:MSVC11 (一些Imagick版本使用不同版本编译,例如VC9,VC11(在本例中),VC14)
知道了这些值,这些将指示您需要从以下所有步骤下载哪些架构的文件。
一, 下载Imagick for PHP
根据以上预装说明中获得的信息我们下载 5.6 Thread Safe (TS) x86 版本.
将开始下载zip文件解压,提取php_imagick.dll文件并复制php_imagick.dll文件并粘贴到PHP安装目录中的php/ext目录中去.如:
然后,php.ini通过添加以下行继续在文件中启用扩展名:extension=php_imagick.dll
现在扩展已加载,但Imagick仍然无法工作,因为如果您检查phpinfo文件不会被识别为扩展,因为我们需要加载需要的二进制文件。
二, 下载所需的Imagick二进制文件
根据预览说明中信息,我们下载了 ImageMagick-6.9.3-7-vc11-x86.zip
下载后解压ZIP包,提取文件内容后,打开其中的bin文件夹并复制所有.dll文件(除外ImageMagickObject.dll),这些文件大约是146个文件(带有前缀CORE_*和IM_MOD_*),然后将复制的文件粘贴到php安装目录中(如: C:\xampp\php\),有些PHP环境同时也要将复制的文件粘贴到apache/bin目录中去。
重新启动apache服务(或者在它已经运行的情况下重新启动它)然后phpinfo再次运行。现在你应该看到imagick作为扩展加载:
其中支持格式为0,因为我们还没有安装: ImageMagick for Windows,且根据上图我们要安装ImageMagick 6.9.3-7 Q16 x86
三, 下载并安装ImageMagick for Windows
由于ImageMagick官网都是最新版本的7.0+的版本,而我们通过上面信息知道要安装 ImageMagick 6.9.3-7 Q16 x86.exe(自行百度相关版本,百度上一大堆该文件).这里我们安装到D盘下.
四, 配置系统变量
1. 安装ImageMagick完成后,检查D:\ImageMagick是否加添加到了系统环境变量path中去。
检查方法:计算机(我的电脑)-> 右键属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 系统变量 -> Path
2. 添加MAGICK_HOME变量名到您的系统环境变量中去, 变量值为ImageMagick安装目录中的coders目录, 如:D:\ImageMagick-6.9.3-Q16\modules\coders;
如下图:
成功配置后, phpinfo打开图如:
五, 安装GhostScript
安装后将GhostScript安装目录中的bin目录添加到系统环境变量path中去C:\Program Files (x86)\gs\gs9.26\bin,如下图:
具体安装步骤可参考百度经验文章:
如何安装GhostScript软件库_百度经验
以上会部步骤操作成功后,可用PHP进行对PDF与图片进行操作啦.
PHP调试错误说明:
错误1:Uncaught exception 'ImagickException' with message 'UnableToOpenBlob...
解决:将PHP代码中使用的文件路径全部变更为绝对路径,如:dirname(__FILE__).'/demo.pdf'