萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux系統下在命令行中壓縮JPEG圖像的方法

Linux系統下在命令行中壓縮JPEG圖像的方法

   如今拍照設備(如智能手機、數碼相機)拍出來的圖片分辨率越來越大。甚至3630萬像素的Nikon D800已經沖入市場,並且這個趨勢根本停不下來。如今的拍照設備不斷地提高著照片分辨率,使得我們不得不壓縮後,再上傳到有儲存限制、帶寬限制的雲。

  事實上,這裡有一個非常簡單的方法壓縮JPEG圖像。一個叫“jpegoptim”命令行工具可以幫助你“無損”美化JPEG圖像,讓你可以壓縮JPEG圖片而不至於犧牲他們的質量。萬一你的存儲空間和帶寬預算真的很少,jpegoptim也支持“有損”壓縮來調整圖像大小。

  如果要壓縮PNG圖像,參考這個指南的例子。

  安裝jpegoptim

  Ubuntu, Debian 或 Linux Mint:

  代碼如下:

  $ sudo apt-get install jpegoptim

  Fedora:

  代碼如下:

  $ sudo yum install jpegoptim

  CentOS/RHEL安裝,先開啟EPEL庫,然後運行下列命令:

  代碼如下:

  $ sudo yum install jpegoptim

  無損壓縮jpeg圖像

  為了無損地壓縮一副JPG圖片,使用:

  代碼如下:

  $ jpegoptim photo.jpg

  photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 821064 bytes (6.93%), optimized.

  注意,原始圖像會被壓縮後圖像覆蓋。

  如果jpegoptim不能無損美化圖像,將不會覆蓋它:

  代碼如下:

  $ jpegoptim -v photo.jpg

  photo.jpg 2048x1536 24bit 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 2048x1536 24bit N ICC JFIF [OK] 882178 --> 301780 bytes (65.79%), optimized.

  在犧牲質量的基礎上,將會得到一個更小的圖片。

201563155612335.jpg (800×243)

  一次壓縮多張JPEG圖像

  最常見的情況是需要壓縮一個目錄下的多張JPEG圖像文件。為了應付這種情況,你可以使用接下來的腳本。

  代碼如下:

  #!/bin/sh

  # 壓縮當前目錄下所有*.jpg文件

  # 保存在./compressed目錄

  # 並擁有與原始文件同樣的修改日期

  for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done

copyright © 萬盛學電腦網 all rights reserved