天天看點

ImageMagick 指令行下圖像處理的利器

ImageMagick是一系列的用于修改、加工圖像的指令行工具。ImageMagick能夠快速地使用指令行對圖檔進行操作,對大量的圖檔進行批處理,或者是內建到bash腳本裡去。

ImageMagick 指令行下圖像處理的利器
ImageMagick能夠執行相當多的操作。本指南将會指引你學習ImageMagick的文法和基本操作,并且給你展示如何将各個操作結合起來以及如何對多個圖像進行批處理。

安裝

在Ubuntu以及很多Linux發行版中,沒有預設安裝ImageMagick,要在Ubuntu上安裝它的話,請使用下面的指令:

sudo apt-get install imagemagick

轉換圖像的格式

convert howtogeek.png howtogeek.jpg

你還可以指定JPEG格式圖像的壓縮級别:

convert howtogeek.png -quality 95 howtogeek.jpg

這個數字的必須在1到100之間。在沒有指定的情況下,ImageMagick使用原始圖像的品質等級(quality level),否則的話ImageMagick取92作為其預設值。

縮放圖像

轉換指令還可以便捷地調整一幅圖像的大小。下面的指令訓示ImageMagick将一幅圖像調整為200像素寬,100像素高。

convert example.png -resize 200×100 example.png

在這個指令裡面,我們對輸入和輸出使用了相同的檔案名,這樣ImageMagick将會覆寫掉原始檔案。

在使用這個指令的時候,ImageMagick會盡量保持圖像的縱橫比。它将會調整圖像以适應200×100的區域,這樣圖像就不是恰好200×100了。如果你想要強制把圖像設定為指定的大小——即使這樣做會改變圖像的縱橫比的話——那麼在尺寸參數後面加一個歎号就可以了。

convert example.png -resize 200×100! example.png

你還可以隻指定特定的寬度或者高度,ImageMagick會在保持縱橫比的情況下進行縮放。下面的指令将把一幅圖像的寬度縮放為200像素寬:

convert example.png -resize 200 example.png

下面的指令會把一幅圖像縮放為100像素高:

convert example.png -resize x100 example.png

旋轉圖像

ImageMagick能夠快速地旋轉圖像。下面的指令将一幅叫做“howtogeek.jpg”的圖像旋轉90度,并将旋轉後的圖像儲存為“howtogeek-rotated.jpg”:

convert howtogeek.jpg -rotate 90 howtogeek-rotated.jpg

如果你指定了相同的檔案名的話,ImageMagick将會用旋轉過的圖像覆寫掉原始圖像。

應用特效

ImageMagick能夠在一幅圖像上做出很多種特效來。例如,下面的指令将一種叫做“炭筆畫”(charcoal)的效果應用到一幅圖像上:

convert howtogeek.jpg -charcoal 2 howtogeek-charcoal.jpg

這個指令将會讓你的圖像有一種藝術炭畫的效果,-charcoal選項後面的2可以控制效果的強度。

![charcoal]

http://segmentfault.com/img/bVb09Z

下面的指令産生強度為1的“内爆”(implode)效果:

convert howtogeek.jpg -implode 1 howtogeek-imploded.jpg

“内爆”效果使得一副圖像看上去中央好像有一個黑洞一樣。

ImageMagick 指令行下圖像處理的利器

把各個操作結合起來!

所有的這些指令都可以結合起來使用,這樣一條指令,你就可以對一幅圖像同時執行縮放、旋轉、添加特效以及格式轉換等操作:

convert howtogeek.png -resize 400×400 -rotate 180 -charcoal 4 -quality 95 howtogeek.jpg

使用ImageMagick,你能做的遠不止這些,還有很多你可以結合起來使用的指令呢!

批處理

利用Bash,你能夠便捷地對多個圖像檔案進行批處理。例如,下面的指令将會把目前目錄下的所有PNG檔案旋轉之後,以原始檔案名加“-rotated”組成的新檔案名儲存。

for file in *.png; do convert $file -rotate 90 rotated-$file; done

稍微修改一下這個指令,你就可以用它做很多其他的事情了。此外你還可以把批處理指令內建到

Bash腳本

中,進而自動化圖像處理的過程。

任何關于ImageMagick的文章都會省略很多東西——因為它的指令和選項實在是太多了。如果你對ImageMagick的其他功能感興趣的話,請查閱

ImageMagick的官方文檔

來對ImageMagick進行更進一步的了解。

繼續閱讀