在 Windows 裡,我通常都是使用 Caesium 這套軟體來批量壓縮圖片,在 Linux 中雖然可以用 Wine 來模擬 Caesium,但 ImageMagick 也能實現相同的效果,壓縮速度很快,幾乎在一瞬間,檔案甚至比用 Caesium 壓縮的更小。
安裝 ImageMagick
ImageMagick 是 unix 裡一套開放原始碼的圖像轉換套件,用來做批量處理很方便。
Arch Linux
1 | sudo pacman -S imagemagick |
CentOS/Fedora/RHEL
1 | sudo yum install imagemagick |
Ubuntu/Debian
1 | sudo apt-get install imagemagick |
安裝完成後可以下命令看是否安裝成功。
1 | convert --version |
指令格式
詳細用法可以輸入 convert
了解。
1 | convert [options ...] file [ [options ...] file ...] [options ...] file |
壓縮圖片
quality
可以選擇壓縮品質,數值愈高,輸出品質愈好,當然檔案也愈大,我在 Caesium 中通常使用 80
或 90
的品質,壓縮出來檔案大小大概減少了 90%,圖片看起來也差不多。
輸出的檔案格式不能是 png,png 是無損格式,如果選 png,檔案不會壓縮,所以建議選用 jpg。
1 | convert a.png -quality 80 a.jpg |
批量處理
Unix 系統中,bash 指令相當好用,組合一下就能做出強大的功能,如果想要把當前目錄的所有副檔名為 png 的圖片進行壓縮,可以用 find
來過濾檔案。
1 | find *.png -exec convert {} -quality 80 {}.jpg \; |
但是檔名會變成 a.png.jpg,這時再用 rename
來批量重新命名就可以解決了。
1 | rename .png.jpg .jpg *.png.jpg |
如果壓縮後要刪除原始檔也可以用 find
解決。
1 | find *.png -exec rm {} \; |