常見問題frequently questions

當前位置:首頁 > 常見問題 > 如何在 Linux命令行中優化和壓縮 JPEG 或 PNG 圖像
常見問題frequently questions 網站常識Common Sense 推廣知識Popularizing knowledge 空間知識Spatial knowledge 備案問題Filing problems

如何在 Linux命令行中優化和壓縮 JPEG 或 PNG 圖像

作者:萍鄉市基三易速科技有限公司   時間:2021-11-04   瀏覽量:1049

如果您有很多圖像,并且想要在將圖像上傳到任何云或本地存儲之前優化和壓縮圖像而又不損失其原始質量嗎?有許多可用的GUI應用程序可幫助您優化圖像。但是,這里有兩個簡單的命令行實用程序可以優化圖像,它們是:

  • jpegoptim – 用于無損壓縮優化 JPEG 文件的小工具。
  • OptiPNG – 不丟失任何信息的 PNG 文件優化壓縮小程序。

使用這兩個工具,您可以一次優化一個或多個圖像。

安裝 jpegoptim

不同的發行版軟件安裝略有不同,根據各個發行版使用的命令個不相同,但相對都比較簡單。

Debian 系列
sudo apt-get install jpegoptim
RedHat 系列

在 RHEL、CentOS、Fedora 這樣的系統上,你需要先安裝并啟用 EPEL 倉庫。你可以直接用下面這條命令安裝啟用。

sudo yum install epel-release sudo  dnf install epel-release   // [On Fedora 22+ versions]

OK,繼續安裝。

sudo yum install jpegoptim $ sudo dnf install jpegoptim    //[On Fedora 22+ versions]

這樣就安裝好了,接下來看看怎么使用。

使用 jpegoptim

jpegoptim 的用法很簡單,只需要命令后面跟上要壓縮的圖片即可,當然中間還可以添加參數,命令類似如下。

jpegoptim filename.jpeg jpegoptim [options] filename.jpeg

我們選一張 Linux265 網站上的 jpg 圖片來做演示,我們可以在壓縮前后通過 du 命令來查看文件的大小。

ubuntu@linux265:~/images$ du -sh linux265.jpg 656K    linux265.jpg ubuntu@ linux265:~/images$ jpegoptim linux265.jpg linux265.jpg 2838x1419 24bit N Exif IPTC ICC Adobe  [OK] 667464 -- 583233 bytes (12.62%), optimized. ubuntu@ linux265:~/images$ du -sh linux265.jpg 576K    linux265.jpg ubuntu@ linux265:~/images$

隨便用哪一個圖片查看軟件打開這張圖片,你絕對看不錯壓縮前后有什么區別。默認壓縮會盡可能的保證和原圖的質量接近。

如果你還嫌不夠小,那么可以犧牲一些質量。比如我們可以指定壓縮到指定的文件大小。比如我們可以把文件壓縮到 250K 。

ubuntu@ linux265:~/images$ jpegoptim --size=250k linux265.jpg linux265.jpg 2838x1419 24bit N Exif IPTC ICC JFIF  [OK] 583233 -- 256134 bytes (56.08%), optimized. ubuntu@ linux265:~/images$ du -sh linux265.jpg 256K    linux265.jpg ubuntu@ linux265:~/images$

批量處理

命令行的工具一般都能很好的和其他工具配合使用,這樣一來,想要批量壓縮就變得很簡單了。

ubuntu@ linux265:~/images$ ls -l total 65184 -rwxr----- 1 ubuntu ubuntu 6680532 Jan 19 12:21 DSC_0310.JPG -rwxr----- 1 ubuntu ubuntu 6846248 Jan 19 12:21 DSC_0311.JPG -rwxr----- 1 ubuntu ubuntu 7174430 Jan 19 12:21 DSC_0312.JPG -rwxr----- 1 ubuntu ubuntu 6514309 Jan 19 12:21 DSC_0313.JPG -rwxr----- 1 ubuntu ubuntu 6755589 Jan 19 12:21 DSC_0314.JPG -rwxr----- 1 ubuntu ubuntu 6789763 Jan 19 12:21 DSC_0315.JPG -rwxr----- 1 ubuntu ubuntu 6958387 Jan 19 12:21 DSC_0316.JPG -rwxr----- 1 ubuntu ubuntu 6463855 Jan 19 12:21 DSC_0317.JPG -rwxr----- 1 ubuntu ubuntu 6614855 Jan 19 12:21 DSC_0318.JPG -rwxr----- 1 ubuntu ubuntu 5931738 Jan 19 12:21 DSC_0319.JPG

使用 find、xargs 這樣的工具可以壓縮你指定的一些文件。

ubuntu@linux265:~/images$ find . -name "*.JPG" | xargs jpegoptim DSC_0310.JPG 6000x4000 24bit N Exif  [OK] 6680532 -- 5987094 bytes (10.38%), optimized. DSC_0311.JPG 6000x4000 24bit N Exif  [OK] 6846248 -- 6167842 bytes (9.91%), optimized. DSC_0312.JPG 6000x4000 24bit N Exif  [OK] 7174430 -- 6536500 bytes (8.89%), optimized. DSC_0313.JPG 6000x4000 24bit N Exif  [OK] 6514309 -- 5909840 bytes (9.28%), optimized. DSC_0314.JPG 6000x4000 24bit N Exif  [OK] 6755589 -- 6144165 bytes (9.05%), optimized. DSC_0315.JPG 6000x4000 24bit N Exif  [OK] 6789763 -- 6090645 bytes (10.30%), optimized. DSC_0316.JPG 6000x4000 24bit N Exif  [OK] 6958387 -- 6354320 bytes (8.68%), optimized. DSC_0317.JPG 6000x4000 24bit N Exif  [OK] 6463855 -- 5909298 bytes (8.58%), optimized. DSC_0318.JPG 6000x4000 24bit N Exif  [OK] 6614855 -- 6016006 bytes (9.05%), optimized. DSC_0319.JPG 6000x4000 24bit N Exif  [OK] 5931738 -- 5337023 bytes (10.03%), optimized.

現在你應該會使用 jpegoptim 對需要的 jpeg 圖片進行壓縮了。還有更多的詳細用法,你可以查看 jpegoptim 的 man 手冊。

$ man jpegoptim

安裝 OptiPNG

Debian 系列
$ sudo apt-get install optipng

RedHat 系列

與上面一樣需要 epel

$ sudo yum install optipng $ sudo dnf install optipng         // [On Fedora 22+ versions]

optipng 用法

用法依然很簡單。

$ optipng filename.png $ optipng [options] filename.png</code></pre> <p>以 linux265.png 為例,演示 optipng 命令。</p> ubuntu@linux265:~/images$ optipng linux265.png OptiPNG 0.6.4: Advanced PNG optimizer. Copyright (C) 2001-2010 Cosmin Truta.  ** Processing: linux265.png 1500x541 pixels, 4x8 bits/pixel, RGB+alpha Input IDAT size = 806781 bytes Input file size = 809112 bytes  Trying:   zc = 9  zm = 8  zs = 0  f = 0     IDAT size = 732923   zc = 9  zm = 8  zs = 0  f = 5     IDAT size = 695518   zc = 9  zm = 8  zs = 1  f = 5     IDAT size = 670355  Selecting parameters:   zc = 9  zm = 8  zs = 1  f = 5     IDAT size = 670355  Output IDAT size = 670355 bytes (136426 bytes decrease) Output file size = 672098 bytes (137014 bytes = 16.93% decrease)  ubuntu@linux265:~/images$ du -sh linux265.png 664K    linux265.png

正如你看到的, optipng 的壓縮效果相當好,并且幾乎沒有質量損失。

同 jpegoptim 一樣,你依然可以將 optipng 與現有的 find 、xargs 等命令組合起來進行批量 png 圖片壓縮。甚至你可以寫一個腳本對你上傳到網站的圖片進行自動壓縮。

更多細節,可以查看 optipng 的 man 手冊。

$ man optipng
精品国产亚洲国产麻豆