如今拍照設(shè)備(如智能手機(jī)、數(shù)碼相機(jī))拍出來的圖片分辨率越來越大。甚至3630萬像素的Nikon D800已經(jīng)沖入市場(chǎng),并且這個(gè)趨勢(shì)根本停不下來。如今的拍照設(shè)備不斷地提高著照片分辨率,使得我們不得不壓縮后,再上傳到有儲(chǔ)存限制、帶寬限制的云。
事實(shí)上,這里有一個(gè)非常簡(jiǎn)單的方法壓縮JPEG圖像。一個(gè)叫“jpegoptim”命令行工具可以幫助你“無損”美化JPEG圖像,讓你可以壓縮JPEG圖片而不至于犧牲他們的質(zhì)量。萬一你的存儲(chǔ)空間和帶寬預(yù)算真的很少,jpegoptim也支持“有損”壓縮來調(diào)整圖像大小。
如果要壓縮PNG圖像,參考這個(gè)指南的例子。
安裝jpegoptim
Ubuntu, Debian 或 Linux Mint:
$ sudo apt-get install jpegoptim
Fedora:
$ sudo yum install jpegoptim
CentOS/RHEL安裝,先開啟EPEL庫(kù),然后運(yùn)行下列命令:
$ sudo yum install jpegoptim
無損壓縮jpeg圖像
為了無損地壓縮一副JPG圖片,使用:
$ jpegoptim photo.jpg
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 821064 bytes (6.93%), optimized.
注意,原始圖像會(huì)被壓縮后圖像覆蓋。
如果jpegoptim不能無損美化圖像,將不會(huì)覆蓋它:
$ jpegoptim -v photo.jpg
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 821064 --> 821064 bytes (0.00%), skipped.
如果你想保護(hù)原始圖片,使用"-d"參數(shù)指明保存目錄
$ jpegoptim -d ./compressed photo.jpg
這樣,壓縮的圖片將會(huì)保存在./compressed目錄(以同樣的輸入文件名)
如果你想要保護(hù)文件的創(chuàng)建修改時(shí)間,使用"-p"參數(shù)。這樣壓縮后的圖片會(huì)得到與原始圖片相同的日期時(shí)間。
$ jpegoptim -d ./compressed -p photo.jpg
如果你只是想看看無損壓縮率而不是真的想壓縮它們,使用"-n"參數(shù)來模擬壓縮,然后它會(huì)顯示出壓縮率。
$ jpegoptim -n photo.jpg
有損壓縮JPG圖像
萬一你真的需要要保存在云空間上,你還可以使用有損壓縮JPG圖片。
這種情況下,使用"-m質(zhì)量>"選項(xiàng),質(zhì)量數(shù)范圍0到100。(0是最好質(zhì)量,100是最差質(zhì)量)
例如,用50%質(zhì)量壓縮圖片:
$ jpegoptim -m50 photo.jpg
photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 301780 bytes (65.79%), optimized.
在犧牲質(zhì)量的基礎(chǔ)上,將會(huì)得到一個(gè)更小的圖片。

一次壓縮多張JPEG圖像
最常見的情況是需要壓縮一個(gè)目錄下的多張JPEG圖像文件。為了應(yīng)付這種情況,你可以使用接下來的腳本。
#!/bin/sh
# 壓縮當(dāng)前目錄下所有*.jpg文件
# 保存在./compressed目錄
# 并擁有與原始文件同樣的修改日期
for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done