华岁呀Huasui

华岁呀Huasui

使用OptiPNG和Jpegoptim批量壓縮優化網站圖片

相信大多數人的部落格應該都少不了圖片吧,隨著部落格的更新,圖片也是越來越多;若使用了 CDN,或者伺服器有流量限制,那就要考慮如何節省流量了,尤其是圖片方面的!

所以有條件還是優化壓縮下圖片為好,雖然壓縮比也不會很高,但還能提高一些載入速度的,量變引起質變呀,有比沒有強嘛!
Hi
這裡推薦兩個 Linux 用來批量壓縮圖片的工具

  • Jpegoptim - 用於無損壓縮優化 JPEG 檔案的小工具。
  • OptiPNG - 不丟失任何資訊的 PNG 檔案優化壓縮小程式。

安裝 Jpegoptim#

下載 Jpegoptim

wget https://www.kokkonen.net/tjko/src/jpegoptim-1.5.1.tar.gz

解壓縮

tar xzvf jpegoptim-1.5.1.tar.gz

jpegoptim-1.5.1 編譯安裝

cd jpegoptim-1.5.1
./configure
make
make strip
make install

驗證 Jpegoptim 是否已經更新到最新版

jpegoptim -V
jpeg-v

安裝 OptiPNG#

下載

wget https://nchc.dl.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.7/optipng-0.7.7.tar.gz

解壓縮

tar xzvf optipng-0.7.7.tar.gz

OptiPNG 編譯安裝

cd optipng-0.7.7
./configure
make
make install

驗證 OptiPNG 版本

optipng -V
optipng-v
OptiPNG 和 Jpegoptim 的使用,可以借助 find、xargs 命令來配合使用

自動壓縮優化 /www 目錄下所有站點的 jpg 和 jpeg 圖片檔案。

find /www -name "*.jpg" -o -name "*.jpeg" | xargs jpegoptim
```<br/>
自動壓縮優化/www目錄下所有站點的PNG圖片檔案<br/>

find /www -name "*.png" | xargs optipng


# 使用 Shell 腳本自動批量壓縮圖片

[xiaoz 大佬](https://www.xiaoz.me/archives/13511) 編寫了一個 shell 腳本來調用 OptiPNG、jpegoptim 工具自動完成批量壓縮圖片。

> ## 支持的圖片格式
> 目前支持.jpg/.jpeg/.bmp/.png 格式圖片
> 
> ## 實現原理
> 先使用 find 命令查找指定目錄圖片(同時對圖片大小和時間進行了篩選)<br/>
根據不同的圖片格式調用不同的壓縮工具<br/>
配合 crontab 定時任務工具自動批量壓縮

#下載批量壓縮腳本
wget https://raw.githubusercontent.com/helloxz/shell/master/img_compress.sh
#執行 shell 腳本
bash img_compress.sh /data/wwwroot/imgurl

其中/data/wwwroot/imgurl修改為自己的圖片目錄(需要使用絕對路徑)

## 使用 crontab 定時執行

#先將腳本賦予執行權限
chmod +x img_compress.sh
#添加定時任務
crontab -e
#將內容複製到最後並保存(每小時執行一次)
*/60 * * * * /yourpath/img_compress.sh /data/wwwroot/imgurl > /dev/null
#重載 crontab
service crond reload

- /yourpath/img_compress.sh為腳本的絕對路徑
- /data/wwwroot/imgurl為圖片的絕對路徑  

# 最後
> 腳本默認查找 60 分鐘以內曾被修改過的圖片檔案(再加上定時任務 1 小時執行一次,這樣就不會去壓縮重複的圖片),並且大於 100kb 的圖片才會進行壓縮,您也可以下載腳本後對這些設定自行做出修改(圖片的壓縮等級也可以適當修改)。此方案適用於圖片存放在 Linux 伺服器環境下。--小 z 博客

**參考文章**<br/>
[小 z 博客--Linux 環境下,使用 Shell 腳本自動批量壓縮圖片](https://www.xiaoz.me/archives/13511)
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。