2021-05-12 14:32:11
Linux系統入門學習:如何在命令列下壓縮JPEG影象
問題: 我有許多數碼照相機拍出來的照片。我想在上傳到Dropbox之前,優化和壓縮下JPEG圖片。有沒有什麼簡單的方法壓縮JPEG圖片並不損耗他們的品質?
如今拍照裝置(如智慧手機、數碼相機)拍出來的圖片解析度越來越大。甚至3630萬畫素的Nikon D800已經衝入市場,並且這個趨勢根本停不下來。如今的拍照裝置不斷地提高著照片解析度,使得我們不得不壓縮後,再上傳到有儲存限制、頻寬限制的雲。
事實上,這裡有一個非常簡單的方法壓縮JPEG影象。一個叫“jpegoptim”命令列工具可以幫助你“無失真”美化JPEG影象,讓你可以壓縮JPEG圖片而不至於犧牲他們的品質。萬一你的儲存空間和頻寬預算真的很少,jpegoptim也支援“有損”壓縮來調整影象大小。
如果要壓縮PNG影象,參考這個指南的例子。
安裝jpegoptim
Ubuntu, Debian 或 Linux Mint:
$ sudo apt-get install jpegoptim
$ sudo yum install jpegoptim
CentOS/RHEL安裝,先開啟EPEL庫,然後執行下列命令:
$ sudo yum install jpegoptim
無失真壓縮jpeg影象
為了無失真地壓縮一副JPG圖片,使用:
$ jpegoptim photo.jpg
photo.jpg 2048x153624bit N ICC JFIF [OK]882178-->821064 bytes (6.93%), optimized.
注意,原始影象會被壓縮後影象覆蓋。
如果jpegoptim不能無失真美化影象,將不會覆蓋它:
$ jpegoptim -v photo.jpg
photo.jpg 2048x153624bit N ICC JFIF [OK]821064-->821064 bytes (0.00%), skipped.
如果你想保護原始圖片,使用"-d"引數指明儲存目錄
$ jpegoptim -d ./compressed photo.jpg
這樣,壓縮的圖片將會儲存在./compressed目錄(以同樣的輸入檔名)
如果你想要保護檔案的建立修改時間,使用"-p"引數。這樣壓縮後的圖片會得到與原始圖片相同的日期時間。
$ jpegoptim -d ./compressed -p photo.jpg
如果你只是想看看無失真壓縮率而不是真的想壓縮它們,使用"-n"引數來模擬壓縮,然後它會顯示出壓縮率。
$ jpegoptim -n photo.jpg
有失真壓縮JPG影象
萬一你真的需要要儲存在雲空間上,你還可以使用有失真壓縮JPG圖片。
這種情況下,使用"-m<品質>"選項,品質數範圍0到100。(0是最好品質,100是最差品質)
例如,用50%品質壓縮圖片:
$ jpegoptim -m50 photo.jpg
photo.jpg 2048x153624bit N ICC JFIF [OK]882178-->301780 bytes (65.79%), optimized.
在犧牲品質的基礎上,將會得到一個更小的圖片。
一次壓縮多張JPEG影象
最常見的情況是需要壓縮一個目錄下的多張JPEG影象檔案。為了應付這種情況,你可以使用接下來的指令碼。
#!/bin/sh
# 壓縮當前目錄下所有*.jpg檔案
# 儲存在./compressed目錄
# 並擁有與原始檔案同樣的修改日期
for i in*.jpg;do jpegoptim -d ./compressed -p "$i";done
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-05/117441.htm
相關文章