🗜

JPEG画像のファイルサイズを一括で圧縮する

2022/07/20に公開

この記事について

この記事では指定ディレクトリ内(サブディレクトリを含む)のJPEG画像のファイルサイズを一括で圧縮する方法について紹介します。画像処理にはNode.jsのsharpを使います。関連リソースを下記に示します。

コーディングの準備

ターミナルで下記のコマンドを実行してコーディングの準備をします。

mkdir compress-jpeg-image
cd compress-jpeg-image
npm init -y
npm install sharp
touch compress-images.mjs main.mjs

コーディング

エディタで下記のファイルを開いて内容を入力します。

compress-images.mjs

main.mjs

動作確認

ターミナルで下記のコマンドを実行してオリジナル画像のディレクトリを作成します。

mkdir img-original

オリジナル画像を用意します。今回はJaimeReimerさんのモレーン湖の美しい景色を使用します。

下記のコマンドを実行して画像の圧縮を開始します。

node main.mjs

圧縮後の画像はimgディレクトリに出力されます。

画像のファイルサイズが157KBから124KBバイトまで圧縮されました。圧縮率は124KB / 157KB = 79%です。

おわりに

画像の圧縮には TinyPNG などを利用することもできますが、一度に処理できる画像が20件までなどの制限があります。大量の画像を圧縮する必要がある場面などでこの記事で紹介した方法がお役に立てば幸いです。

GitHubで編集を提案

Discussion