NTTドコモ様_dカーシェア
NTTドコモ様_dカーシェア
2018.06.23

コマンドでjpg画像を圧縮! guetzliの便利な使い方

ハル

こんにちは。色々な作業をコマンドでできないか模索中のハルです。
前回、png画像の圧縮をコマンドで行う方法を紹介しました。


今回は、シンプルなjpg画像の圧縮コマンド「guetzli」を紹介したいと思います。

guetzliとは

Googleが開発した高品質で画像圧縮するJPEGエンコーダーで、とてもシンプルなコマンド実行でjpg画像圧縮が行えます。
機能が最低限に絞られており、とても使い勝手のいいところが私は気に入っています。

google/guetzli

インストール方法

この記事ではMacでのインストール方法のみ紹介させていただきます。
Macの場合、homebrewで簡単にインストールが可能です。

brew install guetzli

使い方

基本的な使い方

$ guetzli original.jpg output.jpg

第一引数(例: original.jpg)に元となる画像を指定します。
第二引数(例: output.jpg)に出力後のパス・画像名を指定します。

$ guetzli original.png output.jpg

このように、第一引数はjpgの他にpngも指定ができますが書き出しはjpgのみになります。

注意は透過部分は黒に変換されます。

『–quality 数値』

$ guetzli --quality 100 original.jpg output.jpg

『–quality』 に数値を指定することで品質を指定できます。
数値は84以上で指定する必要があります。

『–verbose』

$ guetzli --verbose original.jpg output.jpg

『–verbose』でエンコード状況を出力することができます。

使い方はかなりシンプルで難しくありません。触ってみれば、すぐに使えるようになるはずです。

すべて(複数)の画像をコマンドで処理したい場合

複数指定は用意されていないため、私はシェルスクリプトでやる方法で下記のように実行しています。

$ for F in ./**/*.jpg; do guetzli --quality 95 --verbose $F ./$F; done

すべてのjpgファイルを対象に、同じファイル名でguetzliの処理を実行しています。

さらに、コマンドをalias登録

私は、このような長いコマンドはalias設定をして短いコマンドで実行しています。

『.bashrc』ファイルに、

alias guetzli-all='for F in ./**/*.jpg; do guetzli --quality 95 --verbose $F ./$F; done'

上記のように登録しておけば、ひとまず圧縮をかけたいときに、

$ guetzli-all

と、だけコマンド実行すれば圧縮処理を開始できるので簡単です(処理に時間はかかりますが……)。

まとめ

いかがでしたか? 前回の記事と合わせて、これでpng・jpg画像の圧縮がコマンドで実行できるようになりました! GUIツールから簡単にコマンドで実行の方法に切り替えられるものがあったら、どんどん切り替えていきたいですね。それでは!