(轉)GraphicsMagick、命令行使用示例


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圖像處理系統使用方法

  1. 顯示圖像文件詳細信息 
    gm identify a.jpg

  2. 更改當前目錄下*.jpg的尺寸大小,並保存於目錄.thumb里面 
    gm mogrify -output-directory .thumbs -resize 320x200 *.jpg

  3. 將三幅圖像和並為一副圖像 
    gm montage -mode concatenate -tile 3x1 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 640x480 image.gif image.gif 
(轉換為640x480的圖像)

  1. 在圖像上添加文字 
    gm convert -font Arial -fill blue -pointsize 18 -draw “text 10,10 ‘your text here’” test.tif test.png

  2. 從gif文件中抽取第一幀 
    gm convert “Image.gif[0]” first.gif

  3. 建立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 
(對每一幀手動指定延時)

  1. 截屏 
    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”);

 

轉載----方便查閱


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM