ほとんどのブログには画像が必要です。ブログの更新に伴い、画像も増えてきます。CDN を使用したり、サーバーにトラフィック制限がある場合は、トラフィックの節約方法を考える必要があります。特に画像に関しては!
したがって、条件がある場合は画像を最適化して圧縮することをお勧めします。圧縮率は高くなるわけではありませんが、いくらかの読み込み速度の向上が期待できます。量の変化が質の変化を引き起こすのです。何もないよりもある方が強いです!
ここでは、画像をバッチで圧縮するための 2 つの 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
# シェルスクリプトを使用して画像を自動的にバッチ圧縮する
[xiaoz 大佬](https://www.xiaoz.me/archives/13511) は、OptiPNG、jpegoptimツールを呼び出して画像を自動的にバッチ圧縮するためのシェルスクリプトを作成しました。
> ## サポートされている画像形式
> 現在、.jpg/.jpeg/.bmp/.png形式の画像がサポートされています。
>
> ## 実装原理
> 最初にfindコマンドを使用して指定したディレクトリの画像を検索します(画像のサイズと時間に基づいてフィルタリングも行われます)。<br/>
異なる画像形式に応じて異なる圧縮ツールを呼び出します。<br/>
crontab定期タスクツールを使用して自動的にバッチ圧縮
#バッチ圧縮スクリプトをダウンロード
wget https://raw.githubusercontent.com/helloxz/shell/master/img_compress.sh
#シェルスクリプトを実行
bash img_compress.sh /data/wwwroot/imgurl
ここで/data/wwwroot/imgurlを自分の画像ディレクトリに変更してください(絶対パスを使用する必要があります)
## crontabを使用して定期的に実行する
#まずスクリプトに実行権限を付与します
chmod +x img_compress.sh
#定期的なタスクを追加します
crontab -e
#内容を最後にコピーして保存します(1 時間ごとに実行)
*/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 環境下でのシェルスクリプトを使用した画像の自動バッチ圧縮](https://www.xiaoz.me/archives/13511)