首先须要安装 ImageMagick ,由于 imagick 是一个能够供 PHP 调用 ImageMagick 功能的PHP扩展。(目前最新版本是:ImageMagick-6.8.9-5-Q16-x64-dll.exe)php
安装目录不能有空格,我我的是安装在 C 盘根目录:html
C:\ImageMagickapache
一路默认安装便可,安装完毕后打开 CMD 命令行界面,输入:convert ,并按回车,若是能看到一大堆的内容则表示安装成功。windows
若是提示“ convert 不是内部或外部命令,也不是可运行的程序或批处理文件”或者提示“请输入转换的盘符”( convert 是一个默认的将 FAT32 转换到 NTFS 的系统命令)那么你须要本身将 ImageMagick 的安装路径添加到系统路径。测试
个人电脑 -> 单击右键 -> 属性 -> 高级 -> 环境变量 -> 系统变量 -> 找到“Path” -> 选中并点击进行编辑 -> 把你的安装路径添加进去。spa
点击这里下载,注意下载的时候要下对应的 PHP 版本,同时注意系统是32位仍是64位,以及 PHP 是 NTS 版仍是 TS 版(目前最新稳定版是 3.1.2 ,关于如何判断 PHP 是 NTS 版仍是 TS 版,可经过 phpinfo 查看其中的 Thread Safety 项,若是是 enabled 就表明是 TS 版,否之则就是 NTS 版).net
将下载的压缩包解压,找到 php_imagick.dll 文件,把它放到 PHP 的扩展目录里,而后打开 php.ini 文件,在对应的位置添加如下一行:命令行
extension=php_imagick.dll调试
保存退出后并重启电脑,确保生效。router
若是未生效,则将压缩包里全部「CORE_RL_*.dll」文件复制到 php 根目录,如:D:\php5.6
若是一切正常,重启后在 phpinfo 里应该能看到 imagick 项,如:
若是找不到,则返回第一步,更换不一样版本的 ImageMagick 从新安装并从新调试。
OK,到这一步能够开始编写代码了,过程就不细说了,直接上代码
error_reporting(E_ERROR | E_WARNING); $im = new Imagick('1.psd'); $im->setImageIndex(0); $im->setIteratorIndex(0); $im->stripImage(); //去除图片信息 $im->setImageCompressionQuality(80); //图片质量 $im->writeImage('1.jpg');
以上代码已经通过测试能够正确生成出一张 1.jpg 的图片。
建议缩略图仍是以 jpg 格式,由于 png 格式不支持压缩,我在测试的时候使用 30M 的 PSD 文件,生成出来的 png 缩略图有 3M 多,而 jpg 只有 200KB 左右,而且生成 png 图片的速度明显很慢,大概须要3,4秒。
另外还作了极端测试,用了一近 600M 的 PSD 文件生成 jpg 缩略图,速度基本在2秒内,文件大小不到 2.5M ,因为并未对图片进行尺寸的修改,因此最终生成文件的体积能够根据实际状况再减少。
除了 PSD 文件,我还另外尝试了一些其它格式,好比 MP4 、AVI 等视频格式,但生成速度超级慢。最后发现比较实用的就是生成 PDF 文件的缩略图,但处理 PDF 文件前,须要安装 Ghostscript ,而后总体的代码基本和生成 PSD 的代码同样
$im = new Imagick(); $im->readImage('D:/soft/wamp/www/test/1.pdf[0]'); //echo $im->getNumberImages(); $im->writeImages('D:/soft/wamp/www/test/1.jpg', false);
一、php 图像处理库 ImageMagick windows 下的安装
五、解决 GhostScript 没法打开中文 PDF 的问题
六、Installing Imagick for PHP 5.6.3 and Apache 2.4 on Win 7(2016/09/19 新增)