GraphicsMagick是從 ImageMagick 5.5.2 分支出來的,但是現在他變得更穩定和優秀,GM更小更容易安裝、GM更有效率、GM的手冊非常豐富GraphicsMagick的命令與ImageMagick基本是一樣的。
[ 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) 寫的腳本。
GraphicsMagick圖像處理系統使用方法
-
顯示圖像文件詳細信息
gm identify a.jpg -
更改當前目錄下*.jpg的尺寸大小,並保存於目錄.thumb里面
gm mogrify -output-directory .thumbs -resize 320x200 *.jpg -
將三幅圖像和並為一副圖像
gm montage -mode concatenate -tile 3x1 image1.ppm image2.ppm image3.ppm concatenated.miff -
顯示圖像
gm display ‘vid:*.jpg’ -
格式轉換
gm convert a.bmp a.jpg
gm convert a.bmp a.pdf(轉換為pdf) -
調整圖像dpi和大小
gm convert -density 288 -geometry 25% image.gif image.gif
(縮小為原先的1/4,並且dpi為288)
gm convert -resize 640x480 image.gif image.gif
(轉換為640x480的圖像)
-
在圖像上添加文字
gm convert -font Arial -fill blue -pointsize 18 -draw “text 10,10 ‘your text here’” test.tif test.png -
從gif文件中抽取第一幀
gm convert “Image.gif[0]” first.gif -
建立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
(對每一幀手動指定延時)
- 截屏
gm import a.jpg
用鼠標點擊所要截取的窗口,或者選擇截屏區域,保存為a.jpg
gm import -frame a.jpg
保留窗口的邊框
GraphicsMagick常用管理命令
- 查看版本后安裝情況:gm identify -version
結果::打印出信息
- 識別圖片:gm identify
如: gm identify 100CANON-1/IMG_4108.JPG
結果:IMG_4108.JPG JPEG 3648x2736+0+0 DirectClass 8-bit 2.5M 0.000u 0:01
- 識別圖片(高級):gm identify -verbose
如:gm identify -verbose 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
- 填充后保證等比縮圖 (缺點:要填充顏色,和第一種方法基本一樣)
gm convert input.jpg -thumbnail “100x100” -background gray -gravity center -extent 100x100 output_4.jpg
生成的圖片大小是:100x100,還保證了比例,同時沒有對圖片進行任何裁剪,缺失的部分按指定顏色進行填充。
- 裁剪、填充相結合 (缺點:最差的方法)
gm convert input.jpg -thumbnail “10000@ -background gray -gravity center -extent 100x100 output_5.jpg
生成的圖片大小是:100x100,這次保證了大小和比例,其中的10000就是100x100的乘積,同時在填充和裁剪之間做了一個平衡。
- 位深度32 轉為24
IE6,7,8不支持顯示“位深度32”的圖片,但IE9、火狐、谷歌瀏覽器就可以顯示。
使用GM,把“位深度32”的圖片轉換為“位深度24”的圖片
輸入圖片zzz.jpg就是“位深度32”的圖片,輸出圖片 zzz_out.jpg就是“位深度24”的圖片
gm convert -resize 100x100 -colorspace RGB zzz.jpg zzz_out.jpg
轉完后,圖片的顏色會有輕微變化。
在瀏覽器上選擇圖片裁剪的坐標
=================================
如果想讓用戶手動裁剪頭片的話,就是在瀏覽器上選擇圖片裁剪的坐標,imgAreaSelect是個好選擇。
imgAreaSelect is a jQuery plugin for selecting a rectangular area of an image.
http://odyniec.net/projects/imgareaselect/
Jmagick銳化圖片功能
ImageInfo info = new ImageInfo(filepath+”pics.jpg”);
MagickImage image = new MagickImage(info);
MagickImage sharpened = image.sharpenImage(1.0, 5.0);
sharpened.setFileName(filepath+”sharpened.jpg”);
sharpened.writeImage(info);
主要是函數sharpenImage(double arg0, double arg1);
建議arg0=1.0 arg1=5.0
arg0為半徑 arg1為闕值
這樣做的目的:
明顯會使圖片變得清晰好看。
JMagick 常用技巧
ImageMagick中使用+profile “*” 刪除圖片中不存儲附加信息.
JMagick中,使用MagickImage類上的profileImage(“*”, null)方法,刪除圖片中不存儲附加信息.
刪除圖片中的ICC,ICM, IPTC,8bim等信息
ImageMagick中使用-quality控制圖片的品質,
JMagick中,使用ImageInfo類上的setQuality(80)方法,控制圖片的品質
在Web應用(Resin,Tomcat)使用ImageMagick
如果要在Web應用(Resin,Tomcat)使用ImageMagick,
需要再運行時加入參數: -Djmagick.systemclassloader=no
或者在程序中寫入:System.setProperty(“jmagick.systemclassloader”, “no”);
轉載----方便查閱