ImageMagick简介、GraphicsMagick、命令⾏使⽤⽰例
ImageMagick资料
----------------------------------------------------------------------------
(⾮常好的⽰例)
GraphicsMagick资料
----------------------------------------------------------------------------
命令⾏参数,说明⽂档
-------------------------------------------------------------
ImageMagick介绍
----------------------------------------------------------------------------
ImageMagick是⼀个免费的创建、编辑、合成图⽚的软件。它可以读取、转换、写⼊多种格式的图⽚。
图⽚切割、颜⾊替换、各种效果的应⽤,图⽚的旋转、组合,⽂本,直线,多边形,椭圆,曲线,附加到图⽚伸展旋转。其全部源码开放,可以⾃由使⽤,复制,修改,发布。它遵守GPL许可协议。它可以运⾏于⼤多数的操作系统。
最为重要的是,ImageMagick的⼤多数功能的使⽤都来源于命令⾏⼯具。
GraphicsMagick介绍
----------------------------------------------------------------------------
GraphicsMagick是从 ImageMagick 5.5.2 分⽀出来的,但是现在他变得更稳定和优秀,GM更⼩更容易安装、GM更有效率、GM的⼿册⾮常丰富GraphicsMagick的命令与ImageMagick基本是⼀样的。
ImageMagick、GraphicsMagick的命令概览
----------------------------------------------------------------------------
[ convert | identify | mogrify | composite | montage | compare | display | animate | import | conjure ]
convert:转换图像格式和⼤⼩,模糊,裁剪,驱除污点,抖动,临近,图⽚上画图⽚,加⼊新图⽚,⽣成缩略图等。
identify:描述⼀个或较多图像⽂件的格式和特性。
mogrify:按规定尺⼨***⼀个图像,模糊,裁剪,抖动等。Mogrify改写最初的图像⽂件然后写到⼀个不同的图像⽂件。
composite:根据⼀个图⽚或多个图⽚组合⽣成图⽚。
montage:创建⼀些分开的要素图像。在含有要素图像任意的装饰图⽚,如边框、结构、图⽚名称等。
compare:在算术上和视觉上评估不同的图⽚***其它的改造图⽚。
display:如果你拥有⼀个X server的系统,它可以按次序的显⽰图⽚
animate:利⽤X server显⽰动画图⽚
import:在X server或任何可见的窗⼝上输出图⽚⽂件。 你可以捕获单⼀窗⼝,整个的荧屏或任何荧屏的矩形部分。
conjure:解释执⾏ MSL (Magick Scripting Language) 写的脚本。
⽰例⼀:综合操作(ImageMagick命令⾏)----------------------------------------------------------------------------
1. convert -crop 300x300+0+0 -resize 200x200 -colors 100 +profile "*" 1.jpg 1.png
处理过程解释:
1、把当前⽬录1.jpg图⽚⽂件,从左上⾓(0,0)坐标为起点,裁剪⼀块300x300像素的部分。
2、然后把这部分缩⼩到200x200像素。
3、然后把颜⾊缩减到100⾊。
4、+profile "*"  , 意味着在图⽚⽂件⾥不存储Exif信息,以减⼩图⽚体积。
5、最后⽣成1.png,保存在当前⽬录。
注意:-resize会试图保留原图的原始长宽⽐例,因此不⼀定⽣成的图⽚和你指定的尺⼨⼀定匹配,⽐如,如果2.jpg⼤⼩是400x200,所以如果⽤命令:convert 2.jpg -resize 100x100 2.png,那么⽣成的图⽚2.png的实际⼤⼩是100x50。
常⽤的参数⽤途说明:
-crop 宽x⾼+起点横坐标+起点纵坐标:裁剪图
-resize 宽x⾼!:改变尺⼨,如果使⽤惊叹号,表⽰不保留视觉⽐例,强⾏改变尺⼨匹配给定的宽和⾼;如果仅给定宽或者⾼,如“宽x”或“x⾼”形式的参数(“x⾼”与“宽x⾼”的效果是⼀样的),则以已知参数为基准按⽐例改变尺⼨。
-colors 颜⾊数:设定图⽚采⽤的颜⾊数,如果是⽣成png或gif图⽚应指定这个参数
-quality 质量:设定jpeg图⽚输出质量,推荐采⽤80,此命令仅⽤于输出格式是jpg的情况,不应省略,省略的话默认质量是95,⽣成图⽚过⼤
+profile "*":图⽚中不存储Exif信息,必须使⽤,否则⽣成图⽚过⼤
⽰例⼆:⽣成缩略图(缩⼩图⽚) (ImageMagick命令⾏)----------------------------------------------------------------------------
1. convert -sample 80x40 input.jpg output.jpg  (使⽤⼀个简单的算法⽣成缩略图,速度快,画质较低,适合⽣成100x100以下的
图⽚)
2. convert -resize 100x100 foo.jpg thumbnail.jpg (画质好)
3. convert -resize 50%x50% foo.jpg thumbnail.jpg
4. convert -resize 100x200 22.jpg(图⽚路径)  11.jpg(缩放后存放路径)  图⽚按⽐例缩放
5. convert -resize 100x200\! 22.jpg(图⽚路径)  11.jpg(缩放后存放路径)  强制按给定的宽⾼缩放
⽰例三:裁剪图⽚(ImageMagick命令⾏)----------------------------------------------------------------------------
1. convert -crop  100(长)x200(⾼)+10(x坐标)+10(y坐标)  2
2.jpg(源图⽚路径)  11.jpg(缩放后存放路径)
exif信息⽰例四:旋转图像  (ImageMagick命令⾏)----------------------------------------------------------------------------
1. convert -rotate 90 input.jpg output.jpg
⽰例五:获取⽂件信息 (ImageMagick命令⾏) ----------------------------------------------------------------------------
1. libtiff tiffinfo filename.tiff
⽰例六:把图⽚变为⿊⽩颜⾊(ImageMagick命令⾏)----------------------------------------------------------------------------
1. convert -monochrome foo.png bar.png
添加图⽚⽔印处理(ImageMagick命令⾏)
--------------------------------
假设把名为logo.gif的⽔印图标添加在原始图⽚(src.jpg)右下⾓,且⽔印的下边缘距原始图⽚10像素、右边缘距原始图⽚5像素。使⽤如下命令即可:
1. convert src.jpg logo.gif -gravity southeast -geometry +5+10 -composite dest.jpg
添加英⽂⽂字⽔印  (ImageMagick命令⾏)
-----------------------------------------------------
convert  -fill white -pointsize 24 -draw "text 10,15 'lifesinger 2006' "  1.png  2.png
⽂字坐标在:10x50的位置
可以⽤-font指定字体,这时需要安装Ghostscript⽀持。
如果安装IM、GM时,没有安装Ghostscript字体,会默认使⽤Linux系统的字体,⽬录是:/usr/share/fonts/default/Type1/
添加中⽂⽂字⽔印 (ImageMagick命令⾏)
-----------------------------------------------------
⾼版本的ImageMagick的⽅法
-------------------
convert -font C:\ImageMagick\f  -fill green -pointsize 40 -draw "text 10,50 '⽂字'" d:\bagImg\21.jpg
d:\bagImg\22.jpg
参数说明: -font C:\ImageMagick\f    是指明Windows字体⽂件。
要⾼版本的ImageMagick同,在加中⽂⽂字⽔印时才不乱码。
低版本的ImageMagick的⽅法
-------------------
存在中⽂的情况:假设存有信息的⽂件叫t.txt,字体⽂件是f。
1. ⽅法1:
2. //把⽂件t.txt中的信息⽣成图⽚txt.png, -transparent white让图⽚的背景透明,-size x30设置图⽚的⾼度
3. convert -transparent white -f -fill black -pointsize 24 label:@t.txt txt.png
4. //把txt.png合成到src.jpg上
5. convert src.jpg txt.png -gravity southeast -geometry +10+5 -composite dest.jpg
6.
7. ⽅法2:
8. convert src.jpg -transparent white -f -fill black -pointsize 24 -size x30 label:@t.txt -gravity southeast -
geometry +10+5 -composite dest.jpg
9.
10. ⽅法3:
11. mogrify -f -pointsize 24 -fill black -weight bolder -gravity southeast -annotate +20+20 @"t.txt" src.jpg
说明:上述第⼀、⼆种⽅法都有瑕疵,第⼆种背景不能变成透明,第⼀种虽然⽣成的图⽚可以透明,但是合成到原始图上效果不是很理想,第三种是完全透明的,所以推进⽤第三种⽅式来操作。
GraphicsMagick图像处理系统使⽤⽅法
-----------------------------------------------------
0. 显⽰图像⽂件详细信息
gm identify a.jpg
1.更改当前⽬录下*.jpg的尺⼨⼤⼩,并保存于⽬录.thumb⾥⾯
gm mogrify -output-directory .thumbs -resize 320x200 *.jpg
2. 将三幅图像和并为⼀副图像
gm montage -mode concatenate -tile 3x1 image1.ppm image2.ppm image3.ppm concatenated.miff
3. 显⽰图像
gm display 'vid:*.jpg'
4. 格式转换
gm convert a.bmp a.jpg
gm convert a.bmp a.pdf(转换为pdf)
5. 调整图像dpi和⼤⼩
gm convert -density 288 -geometry 25% image.gif image.gif
(缩⼩为原先的1/4,并且dpi为288)
gm convert -resize 640x480 image.gif image.gif
(转换为640x480的图像)
6. 在图像上添加⽂字
gm convert -font Arial -fill blue -pointsize 18 -draw "text 10,10 'your text here'" test.tif test.png
7. 从gif⽂件中抽取第⼀帧
gm convert "Image.gif[0]" first.gif
8. 建⽴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
(对每⼀帧⼿动指定延时)
9. 截屏
gm import a.jpg
⽤⿏标点击所要截取的窗⼝,或者选择截屏区域,保存为a.jpg
gm import -frame a.jpg
保留窗⼝的边框
GraphicsMagick常⽤管理命令
-----------------------------------------------------
查看版本后安装情况:gm identify -version
结果::打印出信息
识别图⽚:gm identify  /Users/zhaorai/Pictures/照⽚/100CANON-1/IMG_4108.JPG
结果:/Users/zhaorai/Pictures/照⽚/100CANON-1/IMG_4108.JPG JPEG 3648x2736+0+0 DirectClass 8-bit 2.5M 0.000u 0:01
识别图⽚(⾼级):gm identify  -verbose /Users/zhaorai/Desktop/4.png
结果:打印出很多信息。
GraphicsMagick缩放⽐例的精准控制
-----------------------------------------------------
原始图⽚是input.jpg,尺⼨:160x120
只缩⼩不放⼤
gm convert input.jpg -resize "500x500>" output_1.jpg
加了>,表⽰只有当图⽚的宽与⾼,⼤于给定的宽与⾼时,才进⾏“缩⼩”操作。
⽣成的图⽚⼤⼩是:160x120,未进⾏操作
如果不加>,会导致图⽚被⽐等放⼤。
等⽐缩图  (缺点:产⽣⽩边)
gm convert input.jpg -thumbnail "100x100" output_1.jpg
⽣成的图⽚⼤⼩是:100x75
⾮等⽐缩图,按给定的参数缩图(缺点:长宽⽐会变化)
gm convert input.jpg -thumbnail "100x100!" output_2.jpg
⽣成的图⽚⼤⼩是:100x100
裁剪后保证等⽐缩图 (缺点:裁剪了图⽚的⼀部分)
gm convert input.jpg -thumbnail "100x100^" -gravity center -extent 100x100 output_3.jpg
⽣成的图⽚⼤⼩是:100x100,还保证了⽐例。不过图⽚经过了裁剪,剪了图⽚左右两边才达到1:1