ImageMagick學習筆記

歡迎共同研究ImageMagick
Email:sxw2k@sina.com
sxw
                                                        2011年暑假

ImageMagick學習筆記


注意:ImageMagick對中文支持不好窒悔,文件(夾)一定不要含中文粒氧,否則會報錯喳篇!切記敞临!

-開啟開關 +關閉開關,恢復從前麸澜。

convert

convert顧名思義就是對圖像進行轉(zhuǎn)化挺尿,它主要用來對圖像進行格式的轉(zhuǎn)化,同時還可以做縮放炊邦、剪切编矾、模糊、反轉(zhuǎn)等操作馁害。
格式轉(zhuǎn)化

比如把 foo.jpg 轉(zhuǎn)化為 foo.png:轉(zhuǎn)換不會破壞原圖像窄俏。

convert foo.jpg foo.png

Mogrify

mogrify -format png *.jpg

將所有jpg文件轉(zhuǎn)換成png格式,不破壞源文件(相當于批量轉(zhuǎn)換了)

注意:

mogrify -format png *.gif

會把gif文件的每一幀都轉(zhuǎn)化成png文件碘菜,會生成很多文件

convert還可以把多張照片轉(zhuǎn)化成pdf格式:

convert *.jpg foo.pdf
convert test.gif test.jpg 會生成很多以test開頭的圖片文件

=>大小縮放

為一個普通大小的圖片做一個縮略圖

convert -resize 100x100 foo.jpg thumbnail.jpg

也可以用百分比,更為直觀:

convert -resize 50%x50% foo.jpg thumbnail.jpg  (50%x50%是字母x)

convert會自動地考慮在縮放圖像大小時圖像的高寬的比例凹蜈,也就是說新的圖像的高寬比與原圖相同。

批量生成縮略圖:

mogrify -sample 80x60 *.jpg

注意炉媒,這個命令會覆蓋原來的圖片踪区,不過你可以在操作前,先把你的圖片備份一下吊骤。

convert -sample 25%x25% input.jpg output.jpg

等比列縮放
=>加邊框

在一張照片的四周加上邊框缎岗,可以用 -mattecolor 參數(shù),

convert -mattecolor "#000000" -frame 60x60 yourname.jpg rememberyou.png

其中白粉,"#000000"是邊框的顏色传泊,邊框的大小為60x60

=>在圖片上加文字

convert -fill green -pointsize 40 -draw "text 10,50 charry.org" 2.jpg 222.jpg

上面的命令在距離圖片的左上角10x50的位置鼠渺,用綠色的字寫下charry.org,如果你要指定別的字體眷细,可以用-font參數(shù)拦盹。

或者:

convert 1.png -fill white -pointsize 13 -draw "text 10,15 ‘lifesinger 2006’" 2.png

=>模糊

高斯模糊:

convert -blur 80 foo.jpg blur.png

-blur參數(shù)還可以這樣-blur 80x5。后面的那個5表示的是Sigma的值溪椎,這個是圖像術語普舆,我也不太清楚,總之校读,它的值對模糊的效果起關鍵的作用沼侣,效果更明顯

=>翻轉(zhuǎn)

上下翻轉(zhuǎn):

convert -flip foo.png bar.png

左右翻轉(zhuǎn):

convert -flop foo.png bar.png

=>反色
形成底片的樣子:

convert -negate foo.png bar.png

單色
把圖片變?yōu)楹诎最伾?/p>

convert -monochrome foo.png bar.png

加噪聲

convert -noise 3 foo.png bar.png

油畫效果
我們可用這個功能,把一張普通的圖片歉秫,變成一張油畫蛾洛,效果非常的逼真

convert -paint 4 foo.png bar.png

著色:

著色是將每個像素的顏色與指定顏色混合的過程。該效果的參數(shù)就是要用來混合的顏色雁芙≡欤可以用一個百分數(shù)(它將分別用于紅色、綠色和藍色)兔甘,也可以用三個百分數(shù)來指定這個參數(shù)谎碍。也可以提供三個實際值中的一個。要指定三個值裂明,每個值分別代表紅色椿浓、綠色和藍色三個采樣,使用 red/green/blue 形式的參數(shù)闽晦。例如扳碍, 10/20/30 意味著紅色的值是 10、綠色值為 20 而藍色值為 30仙蛉。您也可以在這個構(gòu)造中使用百分數(shù)

convert -colorize 255 input.jpg output.jpg
convert -colorize 100/0/125 input.jpg output.jpg

內(nèi)爆效果

內(nèi)爆效果模擬了您圖像的中心被吸入虛擬黑洞的情形笋敞。所用的參數(shù)是您所期望的內(nèi)爆效果量。

convert -implode 1 input.jpg output.jpg

曝光荠瘪,模擬膠片曝光

convert -solarize 42 input.jpg output.jpg

擴散

spread 在圖像之內(nèi)以隨機的數(shù)量移動像素夯巷。所用的參數(shù)是被移到新選擇的位置的像素區(qū)域的大小。所以它指定了輸出和輸入的相似程度

convert -spread 5 input.jpg output.jpg

馬賽克效果:convert -sample 10% -sample 1000% input.jpg output.jpg

從左至右將圖片水平相連:

convert +append *.jpg result.jpg

convert -size 350x500 xc:black composite.jpg
composite -geometry +0+0 composite.jpg image1.gif composite.jpg
composite -geometry +100+0 composite.jpg image2.gif composite.jpg
composite -geometry +0+300 composite.jpg image3.gif composite.jpg
composite -geometry +0+375 composite.jpg image4.gif composite.jpg

旋轉(zhuǎn)
把一張圖片哀墓,旋轉(zhuǎn)一定的角度:

convert -rotate 30 foo.png bar.png

上面的30趁餐,表示向右旋轉(zhuǎn)30度,如果要向左旋轉(zhuǎn)篮绰,度數(shù)就是負數(shù)后雷。

炭筆效果:

convert -charcoal 2 foo.png bar.png

形成炭筆或者說是鉛筆畫的效果。增加 -charcoal 選項的參數(shù)的數(shù)值會增加應用于該圖像的“炭筆”數(shù)量,但也會延緩生成圖像的過程臀突。

散射
毛玻璃效果:

convert -spread 30 foo.png bar.png

漩渦
以圖片的中心作為參照勉抓,把圖片扭轉(zhuǎn),形成漩渦的效果:

convert -swirl 67 foo.png bar.png

凸起效果
用-raise來創(chuàng)建凸邊:

convert -raise 5x5 foo.png bar.png

執(zhí)行后候学,你會看到藕筋,照片的四周會一個5x5的邊,如果你要一個凹下去的邊梳码,把-raise改為+raise就可以了隐圾。其實凸邊和凹邊看起來區(qū)別并不是很大。
為圖片添加一些注釋信息:

convert -font Arial -stroke green -fill red -draw "text 50,60 www.hist.edu.cn" -pointsize 14 07.jpg hist.png

解釋:

-draw “text 10,10  String"  在以圖片左上角為原點坐標的10,10位置處添加文字
-font 指定字體
-stroke 描邊用的顏色边翁,
-fill 填充用的顏色翎承,這里用none就可以畫出空心字了,
-pointsize 字體像素大小符匾,
-font Arial 將注釋的字體設置為Arial。也可以在此處指定字體文件的路徑瘩例。但它是使用位于非標準位置的字體來完成該任務的:
convert -font c:\windows\fonts\1900805.ttf -fill white -pointsize 36 -draw ‘text 10,475 “ylmf.com”’ floriade.jpg stillhq.jpg
-fill white 用白色而不是標準的黑色來填充字母啊胶。
-pointsize 36 以點為單位指定字母的大小。一英寸等于 72 點垛贤。
convert -font fonts\1900805.ttf -fill white -pointsize 36 -draw 'text 10,475 "stillhq.com"' floriade.jpg stillhq.jpg

以下是結(jié)果:

帶標記的圖像

-fill white 用白色而不是標準的黑色來填充字母焰坪。

發(fā)散后應用炭筆效果:

convert -sample 50%x50% -spread 4 -charcoal 4 input.jpg output.jpg

加上5個像素寬的紅色邊框:

convert -bordercolor red -border 5x5 input.jpg output.jpg
convert -list color 列出描邊可用的顏色

還可以使用以下方法來指定您自己的顏色了,這里 R 表示紅色值聘惦,G 表示綠色值某饰,B 表示藍色值,A 是 alpha(透明度)值:

#RGB - (R,G,B 是十六進制數(shù)善绎,每個 4 位) 
#RRGGBB - (每個 8 位) 
#RRRGGGBBB - (每個 12 位) 
#RRRRGGGGBBBB - (每個 16 位) 
#RGBA - (每個 4 位) 
#RRGGBBAA - (每個 8 位) 
#RRRGGGBBBAAA - (每個 12 位) 
#RRRRGGGGBBBBAAAA - (每個 16 位) 
rgb(r,g,b) - (r,g,b 是十進制數(shù)) 
rgba(r,g,b,a) - (r,g,b,a 是十進制數(shù)) 
convert -mattecolor rgba(255,91,191,1) -frame 2x2 input.jpg out.jpg

添加一些類似于用 -raise 命令得到的陰影

convert -mattecolor rgb(255,181,197) -frame 5x5+2 input.jpg out.jpg

更多的修飾:

convert -mattecolor rgb(255,181,197) -frame 5x5+2+2    input.jpg out.jpg
convert -mattecolor rgb(255,181,197) -frame 25x25+0+25 input.jpg out.jpg
convert -mattecolor rgb(255,181,197) -frame 25x25+25+0 input.jpg out.jpg

研究邊框可深入研究下-frame參數(shù)

composite 命令將一個圖像疊加到另一個圖像上

composite -gravity NorthEast w.jpg input.jpg out.jpg
composite -gravity NorthWest w.jpg input.jpg Northwest.jpg
composite -gravity SouthWest w.jpg input.jpg southwest.jpg
composite -gravity SouthEast w.jpg input.jpg southEast.jpg

可以疊加一個透明的角黔漂,生成帶有圓角的圖像。

將圖片轉(zhuǎn)換成pdf文件

convert *.jpg  test.pdf

convert test.pdf test.png 是將pdf中的文件導出禀酱!但是需要 Ghostscript

生成法國國旗圖案

convert -size 20x40 xc:red xc:white xc:blue +append flag.png

命令的執(zhí)行是有順序的炬守,按照從左至右的順序依次執(zhí)行

convert 1.jpg -crop 300x300+0+0 -resize 200x200 -colors 100 +profile "*" 1.png

表示:把1.jpg先從左上角(0,0)裁剪一塊300x300的部分,然后把這部分縮小到200x200剂跟,然后把顏色縮減到100色减途,最后生成1.png。"+profile "*""意味著在圖片文件里不存儲附加信息曹洽,以減小圖片體積鳍置。

注意,-resize會試圖保留原圖的視覺比例送淆,因此不一定生成的圖片和你指定的尺寸一定匹配税产,比如,如果2.jpg大小是400x200,那么如果用下面的命令:

convert 2.jpg -resize 100x100 2.png

那么生成的圖片2.png的實際大小是100x50砖第。

常用的命令有:

-crop 寬x高+起點橫坐標+起點縱坐標:裁剪圖
-resize 寬x高[!]:改變尺寸撤卢,如果使用驚嘆號,表示不保留視覺比例梧兼,強行改變尺寸匹配給定的寬和高
-colors 顏色數(shù):設定圖片采用的顏色數(shù)放吩,如果是生成png或gif圖片應指定這個參數(shù)
-quality 質(zhì)量:設定jpeg圖片輸出質(zhì)量,推薦采用80羽杰,此命令僅用于輸出格式是jpg的情況渡紫,不應省略,省略的話默認質(zhì)量是95考赛,生成圖片過大
+profile "*":圖片中不存儲附加信息惕澎,必須使用,否則生成圖片過大

生成索引:

montage -bordercolor red -borderwidth 3 -label "%f" -tile 5x3 *.jpg montage.jpg
mogrify -format gif *.jpg

將所有jpg文件轉(zhuǎn)換成gif格式

identify -verbose 001.jpg

顯示圖片詳細信息

identify -format "%wx%h"  001.jpg

顯示圖片的寬和高輸出類似于640x480颜骤,其中-format允許你僅僅定想要輸出的信息唧喉。%w 表示圖像寬度,而 %h 表示圖像高度

圖片目錄(visual image directory 忍抽,VID)的創(chuàng)建:

montage *.jpg directory.vid

或則

convert 'vid:*.jpg' directory.vid

如何將gif文件分析為一系列的單個圖片八孝?

convert animation.gif framed.gif

如何從圖片文件中抽取第一張圖片

convert "Image.gif[0]" first.gif 

如何創(chuàng)建一張空白圖片

convert -size 80x60 xc:"#ddddff" ss.jpg
convert -size 80x60 null:white white.jpg
convert 017.jpg -threshold 100% black.jpg  創(chuàng)建一張與017.jpg同大小的圖片,黑色
convert 017.jpg -threshold 65% black.jpg
identify -format "%wx%h" sample.png

顯示圖片寬和高

convert +adjoin *.jpg frames%d.gif  所有jpg圖片轉(zhuǎn)換成gif格式

如何生成gif動畫

1鸠项、convert -delay 20 *.jpg animation.gif
2干跛、convert -delay 20 001.jpg -delay 10 006.jpg -delay 5 007.jpg animation.gif
3、convert 010.jpg -page +50+100 007.jpg -page +0+100 008.jpg animation.gif
4祟绊、convert -loop 50 *.jpg animation.gif

Imagick的兩種命令行格式:

command  [options]  input_image   output_image
command  [options] image1 [options] image2 [options]  output_image
convert -size 40x20 xc:red  xc:blue  -append  -rotate 90  append_rotate.gif

產(chǎn)生一藍一紅2個圖片楼入,附加到一塊然后再右旋轉(zhuǎn)90度

convert -size 40x20 xc:red  xc:blue -rotate 90  -append   append_rotate.gif
convert -size 40x20 xc:red  xc:blue  -append   append_rotate.gif
convert -size 40x20 xc:red  xc:blue -rotate 90  append_rotate.gif

注意這是一個動畫,有2副圖片牧抽。會動的<涡堋!

convert 06.jpg 07.jpg -append 08.jpg 09.jpg -background skyblue +append temp.jpg

06.jpg和07.jpg垂直附加阎姥,08.jpg和09.jpg水平附加在背景為天藍色的圖片上

convert -list gravity
  • None
  • Center
  • East
  • Forget
  • NorthEast
  • North
  • NorthWest
  • SouthEast
identify -ping 000.jpg

# 000.jpg JPEG 670x448 670x448+0+0 DirectClass 8-bit 46.2891kb


identify -format "%k" 000.jpg
# 34426

identify -ping -format "double_width=%[fx:w*2] PI=%[fx:atan(1)*4]" 000.jpg
# double_width=1340 PI=3.14159

convert null: -print "(50 + 25)/5  ==>  %[fx: (50+25)/5 ]\n" null:
# (50 + 25)/5  ==>  15 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末记舆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子呼巴,更是在濱河造成了極大的恐慌泽腮,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衣赶,死亡現(xiàn)場離奇詭異诊赊,居然都是意外死亡,警方通過查閱死者的電腦和手機府瞄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門碧磅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碘箍,“玉大人,你說我怎么就攤上這事鲸郊》崃瘢” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵秆撮,是天一觀的道長四濒。 經(jīng)常有香客問我,道長职辨,這世上最難降的妖魔是什么盗蟆? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮舒裤,結(jié)果婚禮上喳资,老公的妹妹穿的比我還像新娘。我一直安慰自己腾供,他們只是感情好仆邓,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著台腥,像睡著了一般宏赘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上黎侈,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音闷游,去河邊找鬼峻汉。 笑死,一個胖子當著我的面吹牛脐往,可吹牛的內(nèi)容都是我干的休吠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼业簿,長吁一口氣:“原來是場噩夢啊……” “哼瘤礁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起梅尤,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤柜思,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后巷燥,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赡盘,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年缰揪,在試婚紗的時候發(fā)現(xiàn)自己被綠了陨享。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖抛姑,靈堂內(nèi)的尸體忽然破棺而出赞厕,到底是詐尸還是另有隱情,我是刑警寧澤定硝,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布皿桑,位于F島的核電站,受9級特大地震影響喷斋,放射性物質(zhì)發(fā)生泄漏唁毒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一星爪、第九天 我趴在偏房一處隱蔽的房頂上張望浆西。 院中可真熱鬧,春花似錦顽腾、人聲如沸近零。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽久信。三九已至,卻和暖如春漓摩,著一層夾襖步出監(jiān)牢的瞬間裙士,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工管毙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留腿椎,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓夭咬,卻偏偏與公主長得像啃炸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子卓舵,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容