ImageMagick資料php
----------------------------------------------------------------------------html
ImageMagick官網java
ImageMagick Identify 命令行工具(官網)算法
ImageMagick 程序接口文檔chrome
ImageMagick使用示例(很是好的示例)編程
GraphicsMagick資料api
----------------------------------------------------------------------------瀏覽器
GraphicsMagick官網 ide
命令行參數,說明文檔
-------------------------------------------------------------
GraphicsMagick 命令行參數,說明文檔
ImageMagick 命令行參數,說明文檔
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.jpg圖片文件,從左上角(0,0)座標爲起點,裁剪一塊300x300像素的部分。
二、而後把這部分縮小到200x200像素。
三、而後把顏色縮減到100色。
四、+profile "*" , 意味着在圖片文件裏不存儲Exif信息,以減少圖片體積。
五、最後生成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命令行)----------------------------------------------------------------------------
示例三:裁剪圖片(ImageMagick命令行)----------------------------------------------------------------------------
示例四:旋轉圖像 (ImageMagick命令行)----------------------------------------------------------------------------
示例五:獲取文件信息 (ImageMagick命令行)----------------------------------------------------------------------------
示例六:把圖片變爲黑白顏色(ImageMagick命令行)----------------------------------------------------------------------------
添加圖片水印處理(ImageMagick命令行)
--------------------------------
假設把名爲logo.gif的水印圖標添加在原始圖片(src.jpg)右下角,且水印的下邊緣距原始圖片10像素、右邊緣距原始圖片5像素。使用以下命令便可:
添加英文文字水印 (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\font\fangzheng.ttf -fill green -pointsize 40 -draw "text 10,50 '文字'" d:\bagImg\21.jpg d:\bagImg\22.jpg
參數說明: -font C:\ImageMagick\font\fangzheng.ttf 是指明Windows字體文件。
要高版本的ImageMagick同,在加中文文字水印時纔不亂碼。
低版本的ImageMagick的方法
-------------------
存在中文的狀況:假設存有信息的文件叫t.txt,字體文件是msyh.ttf。
說明:上述第1、二種方法都有瑕疵,第二種背景不能變成透明,第一種雖然生成的圖片能夠透明,可是合成到原始圖上效果不是很理想,第三種是徹底透明的,因此推動用第三種方式來操做。
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
填充後保證等比縮圖 (缺點:要填充顏色,和第一種方法基本同樣)
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」的圖片,但IE九、火狐、谷歌瀏覽器就能夠顯示。
使用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");