GraphicsMagick用法及安装,php扩展gmagick
本文发布于 11 年前, 内容可能已经过时或失效!
## GraphicsMagick介绍 GraphicsMagick是从 ImageMagick 5.5.2 分支出来的,但是现在他变得更稳定和优秀,GM更小更容易安装、GM更有效率、GM的手册非常丰富GraphicsMagick的命令与ImageMagick基本是一样的。 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等的调用。 ## 1. 安装GraphicsMagick ``` wget http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.38/GraphicsMagick-1.3.18.tar.gz tar -zxf GraphicsMagick-1.3.18.tar.gz cd GraphicsMagick-1.3.18/ ./configure --prefix=/usr/local/gmagick --enable-shared make -j4 make install cd .. ``` **说明**:如果编译不通过可以加上--disable-openmp参数 ## 2 安装GraphicsMagick之php扩展gmagick **a)**. 下载并安装 ```bash wget http://pecl.php.net/get/gmagick-1.1.4RC1.tgz tar -zxf gmagick-1.1.4RC1.tgz cd gmagick-1.1.4RC1/ phpize ./configure --with-gmagick=/usr/local/gmagick/ make -j4 make install ``` **b)**. 添加到php.ini并重启php-fpm或apache ```bash vi /etc/php.ini # 末尾追加 [gmagick] extention = gmagick.so # 重启php service php-fpm restart ``` **编译说明**: 当前我的php安装路径是`/usr/local/php`。并且添加了环境变量:`/usr/local/php/bin`,添加方法:(根据你的路径来) ``` echo PATH=$PATH:/usr/local/php/bin/ >> /etc/profile source /etc/profile ``` 如果未添加环境变量,或多版本php装扩展,可以使用全路径式: ``` /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-gmagick=/usr/local/gmagick/ ``` ## GraphicsMagick命令常用方法 1. 显示图像文件详细信息 ``` gm identify a.jpg ``` 2. 更改当前目录下*.jpg的尺寸大小,并保存于目录.thumb里面 ``` gm mogrify -output-directory .thumbs -resize 320×200 *.jpg ``` 3. 将三幅图像和并为一副图像 ``` gm montage -mode concatenate -tile 3×1 image1.ppm image2.ppm image3.ppm concatenated.miff ``` 4. 显示图像 ``` gm display "vid:*.jpg" ``` 5. 格式转换 ``` gm convert a.bmp a.jpg gm convert a.bmp a.pdf(转换为pdf) ``` 6. 调整图像dpi和大小 ``` gm convert -density 288 -geometry 25% image.gif image.gif ``` (缩小为原先的1/4,并且dpi为288) ``` gm convert -resize 640×480 image.gif image.gif ``` (转换为640×480的图像) 7. 在图像上添加文字 ``` gm convert -font Arial -fill blue -pointsize 18 -draw "text 10,10 ‘your text here’" test.tif test.png ``` 8. 从gif文件中抽取第一帧 ``` gm convert "Image.gif[0]" first.gif ``` 9. 建立gif图像 ``` gm convert -delay 20 frame*.gif animation.gif gm convert -loop 50 frame*.gif animation.gif ``` (让动画循环50次) ``` gm convert -delay 20 frame1.gif -delay 10 frame2.gif -delay 5 frame3.gif animation.gif ``` (对每一帧手动指定延时) 10. 截屏 ``` gm import a.jpg ``` 用鼠标点击所要截取的窗口,或者选择截屏区域,保存为a.jpg ``` gm import -frame a.jpg ``` 保留窗口的边框