相信大多數人的部落格應該都少不了圖片吧,隨著部落格的更新,圖片也是越來越多;若使用了 CDN,或者伺服器有流量限制,那就要考慮如何節省流量了,尤其是圖片方面的!
所以有條件還是優化壓縮下圖片為好,雖然壓縮比也不會很高,但還能提高一些載入速度的,量變引起質變呀,有比沒有強嘛!
這裡推薦兩個 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
安裝 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 和 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)