以前使用GD库能够知足项目中须要的头像,图片的处理。包括群和讨论组的相似QQ讨论组九宫格头像拼接也用GD库实现了。 可是,在用户量逐步涨上来的时候,效率上就知足不了。即使作了异步队列来异步生成讨论的头像,仍是会有延迟显示的问题出现。php
索性,直接换上imagick。shell
先解释下名词,这二者的关系;vim
ImageMagick 是用来建立,编辑,合并位图图像的一套组件。 它可以用于读取,转换,写入多种不一样格式的图像。 包含 DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, 和 TIFF。异步
imagick 是用 ImageMagic API 来建立和修改图像的PHP官方扩展。 imagick的PHP扩展库地址:http://pecl.php.net/package/imagickphp-fpm
两种方式安装:工具
推荐使用rpm软件包安装,注意root权限同时安装 ImageMagick 和 ImageMagick-libs。.net
这里使用的是源码安装,注意是root权限,步骤以下:debug
1.下载源码:code
$ wget http://www.imagemagick.org/download/ImageMagick.tar.gz
2.解压:队列
$ tar zxf ImageMagick.tar.gz
3.进入目录:
$ cd ImageMagick-7.0.7-15
4.检查配置环境, 生成 Makefile:
$ ./configure --prefix=/usr/local/ImageMagick-7
官方推荐高级用户使用:
$ ./configure --with-modules --enable-shared --with-perl
5.编译并安装:
$ make && make install
6.检查是否安装成功:
$ convert -version
也有两种方式安装:
须要指定 ImageMagick 的安装目录
rpm软件包安装 ImageMagick ,使用 pecl 安装更快捷。
root 权限执行: $ pecl install imagick
下载:wget http://pecl.php.net/get/imagick-3.4.3.tgz
这里也使用源码安装imagick扩展,步骤以下:
$ wget http://pecl.php.net/get/imagick-3.4.3.tgz
$ tar zxvf imagick-3.4.3.tgz
$ cd imagick-3.4.3
$ phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config \ --with-imagick=/usr/local/ImageMagick-7
$ make && make install
备注:在安装过程当中出现错误,通常是因为缺乏编译工具包致使,可根据提示参照第一步安装相应的工具包便可。安装完成以后,出现下面的界面:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/ Installing header files: /usr/local/php/include/php/
$ php --ini Configuration File (php.ini) Path: /usr/local/php/etc Loaded Configuration File: /usr/local/php/etc/php.ini Scan for additional .ini files in: /usr/local/php/conf.d Additional .ini files parsed: /usr/local/php/conf.d/002-zendguardloader.ini
$ vim /usr/local/php/etc/php.ini
在最后一行添加, extension="imagick.so"
$ service php-fpm reload # CentOS7 可使用此命令,或者 systemctl reload php-fpm
$ php -m | grep imagick
$ php --ri imagick