ubuntu修改圖片格式、去除白邊、矯正影象等使用imagemagick工具
阿新 • • 發佈:2019-02-03
可以用 PhotoShop 或 GIMP 這樣的軟體來處理影象。沒人禁止你這麼做,就像沒人禁止你用大炮打蚊子一樣。不過依我看,打蚊子最好還是用電蚊拍,而要處理大量影象的話,我推薦 ImageMagick。
先來介紹一下 ImageMagick。
ImageMagick(簡稱 IM)是一個支援 GPL 協議的開源免費軟體包。
它由一組命令列工具組成的。
它可以對超過 100 種的影象格式(包括 DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, 和 TIFF等等),進行讀、寫、編輯和轉換的操作。
它支援多數主流作業系統,其中包括 UNIX、Mac OS X 和 Windows。
在ubuntu16.04裡面是自帶的
IM 的主頁是 http://www.imagemagick.org/ 。你可以在那裡下載它的原始碼或可執行檔案。
一般人可以直接下載它的 Windows 發行版。地址是:http://www.imagemagick.org/script/binary-releases.php#windows 。
有 6 種格式可供選擇,如果你不清楚自己要什麼,我建議你下載 Q16 的 static 版。
先來看看 ImageMagick 能做些什麼:
1、批量旋轉、分割,並順序編號
2、自動批量切除白邊(auto-crop)
3、自動傾斜校正(deskew)
4、批量加標註
5、批量去標註
6、批量加水印
7、批量去水印
一、最基本的格式轉換
下面,我將結合與掃書制書有關的影象操作,來說明 IM 的用法。
前面已經說過,IM 由一組命令列工具組成,具體來說也就是 convert、mogrify、composite、montage、identify、compare、display、animate、stream、import 和 conjure,這 11 個命令。
其中最常用的,是 convert 和 mogrify。
1、將 a.gif 轉為 png 格式
convert a.gif a.png
請注意,convert 命令的基本格式為
convert 原始檔 [引數] 目標檔案
在上面的命令中,原始檔是 a.gif,目標檔案是 a.png。由於這是最簡單的格式轉換,所以不需要中間的引數。
convert 常用於單個檔案的轉換。上面的命令是它最基本的用法。
前面說過 IM 支援超過 100 種的檔案格式。
下面的命令,可以列出 IM 所支援的所有格式:
identify -list format
2、批量檔案的格式轉換
mogrify -path newdir -format png *.gif
這個命令的作用,是將當前目錄下的所有 gif 檔案,轉換為 png 格式,並將其存放在 newdir 目錄下。
mogrify 是用於批量處理檔案的命令。它的基本格式是這樣的:
mogrify 引數 原始檔
mogrify 支援基本的萬用字元,例如你可以用 a*.png 指代所有以 a 打頭的 png 檔案,諸如此類。
再回到剛才的命令:
mogrify -path newdir -format png *.gif
這裡的 -path 和 -format 是兩個可選擇的引數。
-format 指定輸出的檔案格式,而 -path 則指定輸出的檔案目錄。
我在這裡先強調一下:如果不加 -path 引數的話,mogrify 有可能會覆蓋你的原始檔,因此強烈推薦在每個 mogrify 命令裡都加上 -path 引數,並在執行之前,先檢查整個命令正確性。
二、影象的縮放:使用 -resize
IM 有好幾種縮放影象的方法,在這裡我只講最基本的 resize 命令。
將一個200x304大小的影象縮小為100x152(長寬各縮短一半)。
convert page200.png -resize 100x152 page100.png
上面的 100x152,指定了目標檔案的長和寬。
你也可以只指定目標檔案寬度,這樣它的高度會等比例放大:
convert page200.png -resize 100 page100.png
或者只指定高度:
convert page200.png -resize x152 page100.png
以上三句命令,其結果都是一樣的。
你可以用 identify 命令來顯示影象的尺寸以及其它一些資訊:
identify page100.png
其結果為:
page100.png PNG 100x152 100x152+0+0 8-bit DirectClass 17.9kb
最後,你還可以通過指定百分比來縮放影象:
convert page200.png -resize 50% page100.png
convert page200.png -resize 150% page300.png
批量縮放影象
mogrify -path newdir -resize 200% *.png
這句命令的意思是將當前目錄中所有的 png 檔案都放大一倍,並存放到 newdir 目錄中。
請注意,如果沒有 -path 語句,新生成的 png 檔案將會覆蓋原始檔案。因此,在使用 mogrify 命令時,-path 引數幾乎是必須的。