ImageMagick能夠執行相當多的操作。本指南將會指引你學習ImageMagick的文法和基本操作,並且給你展示如何將各個操作結合起來以及如何對多個映像進行批處理。
安裝
在Ubuntu以及很多Linux發行版中,沒有預設安裝ImageMagick,要在Ubuntu上安裝它的話,請使用下面的命令:
| 代碼如下 |
複製代碼 |
|
sudo apt-get install imagemagick |
轉換映像的格式
轉換命令對一幅映像執行某項操作,並將其以你指定的名字儲存。你能使用它完成的一個最基本的事情是轉換你的映像到各種其他的格式。下面的命令將目前的目錄下的一個叫“howtogeek.png”的PNG檔案轉換為一個JPEG檔案。
| 代碼如下 |
複製代碼 |
|
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可以控制效果的強度。
下面的命令產生強度為1的“內爆”(implode)效果:
| 代碼如下 |
複製代碼 |
|
convert howtogeek.jpg -implode 1 howtogeek-imploded.jpg |
“內爆”效果使得一副映像看上去中央好像有一個黑洞一樣。
把各個操作結合起來!
所有的這些命令都可以結合起來使用,這樣一條命令,你就可以對一幅映像同時執行縮放、旋轉、添加特效以及格式轉換等操作:
| 代碼如下 |
複製代碼 |
|
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進行更進一步的瞭解