当前位置: 移动技术网 > IT编程>开发语言>PHP > PHP中使用imagick生成PSD文件缩略图教程

PHP中使用imagick生成PSD文件缩略图教程

2019年06月01日  | 移动技术网IT编程  | 我要评论

第一步、安装imagemagick

  首先需要安装 imagemagick ,因为 imagick 是一个可以供 php 调用 imagemagick 功能的php扩展。(目前最新版本是:imagemagick-6.8.9-5-q16-x64-dll.exe)

  安装目录不能有空格,我个人是安装在 c 盘根目录:

复制代码 代码如下:

c:\imagemagick

  一路默认安装即可,安装完毕后打开 cmd 命令行界面,输入:convert ,并按回车,如果能看到一大堆的内容则表示安装成功。

  如果提示“ convert 不是内部或外部命令,也不是可运行的程序或批处理文件”或者提示“请输入转换的盘符”( convert 是一个默认的将 fat32 转换到 ntfs 的系统命令)那么你需要自己将 imagemagick 的安装路径添加到系统路径。

  我的电脑 -> 单击右键 -> 属性 -> 高级 -> 环境变量 -> 系统变量 -> 找到“path” -> 选中并点击进行编辑 -> 把你的安装路径添加进去。

第二步、安装imagick

  ,注意下载的时候要下对应的 php 版本,同时注意系统是32位还是64位,以及 php 是 nts 版还是 ts 版(目前最新稳定版是 3.1.2 ,关于如何判断 php 是 nts 版还是 ts 版,可通过 phpinfo 查看其中的 thread safety 项,如果是 enabled 就代表是 ts 版,否之则就是 nts 版)

  将下载的压缩包解压,找到 php_imagick.dll 文件,把它放到 php 的扩展目录里,然后打开 php.ini 文件,在对应的位置添加以下一行:

复制代码 代码如下:

extension=php_imagick.dll

  保存退出后并重启电脑,确保生效。

第三步、检查

  如果一切正常,重启后在 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);

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网