在 Linux 下用 ImageMagick 批量壓縮圖片

2018-06-03

Compress

在 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 中通常使用 8090 的品質,壓縮出來檔案大小大概減少了 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 {} \;
分類: #Linux/ #教學

留言: