ImageMagick简介
ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件, 包括流行的TIFF、JPEG、GIF、 PNG、PDF以及PhotoCD等格式。利用ImageMagick, 你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作, 并将操作的结果以相同格式或其它格式保存,对图片的操作, 即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。 同时ImageMagick提供了一个高质量的2D工具包,部分支持SVG。ImageMagic的主要精力集中在性能, 减少bug以及提供稳定的API和ABI上。
ImageMagick 是一个用来创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。 图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线, 多边形,椭圆,曲线,附加到图片伸展旋转。 ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。支持大多数的操作系统。
ImageMagick 使用前提
ImageMagick是一款带有bin命令的没有视图话的图片处理程序,主要是为程序设计上面准备的。
ImageMagick不能直接跟其他变成语言交互,本身有各种语言提供的官方mod,也就是和变成语言交互用的扩展包。
我们这里已php为例,来讲解该怎么使用它。
ImageMagick 安装教程
CentOS使用yum安装:
yum install ImageMagick ImageMagick-devel ImageMagick-perl
Ubuntu使用apt-get安装:
apt-get install ImageMagick ImageMagick-devel ImageMagick-perl
MacOS使用brew安装:
brew tap josegonzalez/homebrew-php
brew install josegonzalez/php/php70-imagick --build-from-source
如果有使用php-imagick扩展的coder,记得要重启
systemctl restart php-fpm
systemctl restart nginx
使用方式
php语言可以直接使用exec调用命令行的方式来使用,也可以使用其他的外置扩展包来直接使用此软件。比如php可以直接装php-imagick扩展来直接实现ImageMagick相关的功能。
ImageMagick 之 convert 命令
convert命令:转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。
crop 参数,截取图片使用
convert -crop [需要截取宽x需要截取高] + [截取起点横坐标+截取起点纵坐标]convert -gravity center
resize 参数,缩放图片,如果仅给定宽或者高,如“宽x”或“x高”形式的参数(“x高”与“宽x高”的效果是一样的),则以已知参数为基准按比例改变尺寸。
convert -resize [宽] x [高]convert -resize 400x400
colors 参数,颜色数,设定图片采用的颜色数,如果是生成png或gif图片应指定这个参数
convert -colors [数字]convert -colors 100
quality 参数,图片质量,设定jpeg图片输出质量,推荐采用80,此命令仅用于输出格式是jpg的情况,不应省略,省略的话默认质量是95,生成图片过大
convert -quality [百分比]convert -quality 80%
profile 参数,设置图片Exif信息,图片中不存储Exif信息,必须使用,否则生成图片过大
convert +profile [字符串]convert +profile "*"convert +profile "这里是注释"
monochrome 参数,黑白化
convert -monochrome
negate 参数,图片反色(底片化)
convert -negate
flip 参数,图片上下翻转
convert -flip
flop 参数,图片左右翻转
convert -flop
paint 参数,油画效果
convert -paint [数字]convert -paint 4
charcoal 参数,炭笔效果
convert -charcoal [数字]convert -charcoal 2
background 参数,背景颜色
convert -background [色值]convert -background #00000convert -background none
rotate 参数,图片旋转,自动添加白色背景,可以使用background参数去掉背景
convert -rotate [色值]convert -rotate 90
border 参数,图片加边框
convert -border [数值]×[数值]convert -border 60x60
bordercolor 参数,边框颜色
convert -bordercolor [色值]convert -bordercolor "#000000"
composite 参数,合成图片
convert -composite [图片地址1] [图片地址2] [合成图片地址]convert -composite -composite /home/test.png /home/logo.png /home/imgwatermark.png
gravity 参数,方向点(结合-composite等命令用) (southwest、southeast、northwest、northeast)
convert -gravity [southwest、southeast、northwest、northeast]convert -gravity southwest
geometry 参数,距离方向点的距离(结合-composite等命令用)
convert -geometry [±数字][±数字]convert -geometry +5+10
ImageMagick composite命令
composite命令:根据一个图片或多个图片组合生成图片
gravity 参数,方向点(结合-composite等命令用) (southwest、southeast、northwest、northeast)
composite -gravity [ southwest | southeast | northwest | northeast ]composite -gravity southwest
geometry 参数,距离方向点的距离(结合-composite等命令用)
composite -gravity [±数字][±数字]composite -geometry +5+10