Total Pageviews

Friday, 10 May 2013

GraphicsMagick的安装

一.GraphicsMagick概述
1. 简介
GraphicsMagick号称图像处理领域的瑞士军刀。 短小精悍的代码却提供了一个鲁棒、高效的工具和库集合,来处理图像的读取、写入和操作,支持超过88中图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。
通过使用OpenMP可是利用多线程进行图片处理,增强了通过扩展CPU提高处理能力。
GraphicsMagick可以再绝大多数的平台上使用,Linux、Mac、Windows都没有问题。
GraphicsMagick支持大图片的处理,并且已经做过GB级别的图像处理实验。GraphicsMagick能够动态的生成图片,特别适用 于互联网的应用。可以用来处理调整尺寸、旋转、加亮、颜色调整、增加特效等方面。GaphicsMagick不仅支持命令行的模式,同时也支持C、 C++、Perl、PHP、Tcl、Ruby等的调用。事实上,GraphicsMagick是从 ImageMagick 5.5.2 分支出来的,但是现在他变得更稳定和优秀,下面就是两个之间的一些比较。
2.比较
因为PHP接到请求后初始化资源,响应后释放一切的工作模式,在大负载的情况下,GD无疑会拖慢PHP,反过来说,ImageMagick和PHP 完全是松耦合的关系,如果PHP使用命令行调用ImageMagick的话,那么甚至可以说没什么联系。ImageMagick享用OS的资源,给PHP 提供服务.
3.整理收集
图片处理(GD、ImageMagick、GraphicsMagick)
常用的图片处理工具有GD,ImageMagick,GraphicsMagick等等。 GD就是个阿斗,略过不提;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;GraphicsMagick的功能略逊于 ImageMagick,但是它的效率更强悍,就好比Apache和Nginx一样,一个功能更强,一个效率更胜。据说Flickr原来就用 ImageMagick,后来改成了GraphicsMagick。似乎就是因为效率更好些。淘宝用于图片resize和水印的工具不是 imagemagick而是graphicsmagick。
Imagemagick与GD处理图片的优缺比较
第一、用Imagemagick替换GD进行图片的处理,GD和ImageMagick相比,首先是功能上面有区别。
第二、在处理结果,也就是画质上有区别。
第三,最重要的,性能上有差距。
关于性能比较,其实还是存在一点争议,有的测试结果指出,使用某些ImageMagick的API,处理速度反倒不如GD,有的测试结果也指出,少 量图片的处理GD的速度也比ImageMagick要快,随着图片数量和大小的上升,ImageMagick基本不受影响。但是无论如何,在性能方 面,ImageMagick有一个重要的优势:GD作为PHP的一个模块,因为PHP接到请求后初始化资源,响应后释放一切的工作模式,在大负载的情况 下,GD无疑会拖慢PHP,反过来说,ImageMagick和PHP完全是松耦合的关系,如果PHP使用命令行调用ImageMagick的话,那么甚 至可以说没什么联系。ImageMagick享用OS的资源,给PHP提供服务。
4.安装
官方主页    : GraphicsMagick
下载地址  : Download
1
2
3
4
tar xvf GraphicsMagick-1.3.12.tar
./configure --without-prel --enable-shared --disable-openmp
make
make install
二.GraphicsMagick PHP扩展安装
下载地址  : Gmagick
相关文档  : Gmagick
1.安装PHP扩展 gmagick-1.0.9
1
2
3
4
5
6
tar -zxvf gmagick-1.0.9b1.tgz
cd gmagick-1.0.9b1
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
2 : 修改PHP.ini文件
1
2
3
4
5
6
7
8
# 修改配置文件
vi /usr/local/php/etc/php.ini
# extension_dir = './' 更改路径
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/gmagick.so"
# 开启gmagick扩展
extension = gmagick.so
# 重启Apache
/usr/local/apache2/bin/apachectl restart
3 : 显示php服务器的配置信息,查看扩展是否安装
1
2
3
4
5
vi /usr/local/apache2/htdocs/index.php
# 写入
<?php
     phpinfo();
?>

三.GraphicsMagick PHP扩展使用方法
1.准备一张图

1
2
3
4
5
6
<?php
# 如果使用扩展报错请安装libpng ,libjpeg ,libmcrypt到默认目录
$image = new Gmagick('1.jpg');
$image->borderImage('blue',3,3)->oilPaintImage(0.1);
$image->write('2.jpg');
?>

1
2
3
4
5
6
<?php
$image = new Gmagick('1.jpg');
// 改变图片大小
$image->resizeimage(100,200);
$image->write('2.jpg');
?>

其他文档:http://devzone.zend.com/1559/manipulating-images-with-php-and-graphicsmagick/