GoogleがJPEGエンコーダー「Guetzli」をオープンソースで公開 - GIGAZINEの記事で紹介されているように、Googleが公開したオープンソースの、高品質・高圧縮のJPEGエンコーダーが話題になっています。
https://github.com/google/guetzli
ソースコードはすべてGitHub上で公開されているのですが、上記の記事やGitHubのREADMEを読んでも、WindowsやLinux版の使用方法しか言及されておらず、Mac版での使用方法については書かれていません。UNIX系互換OSであるmacOSであれば、間違いなくコンパイルできるはずと思い、早速Macでコンパイルしてみました。
高品質・高圧縮のJPEGエンコーダー「Guetzli」をmacOSで使用する
GitHubからソースコードをダウンロードして、そのままコンパイルしようとしてもエラーになって、コンパイルできません。必要なライブラリがインストールされていないためです、そのために事前にHomebrewをインストールしましょう。
事前にHomebrewをインストールする
事前準備として、コンパイルに必要な各種ライブラリをインストールするために、Homebrew — macOS 用パッケージマネージャーをインストールします。インストールは、ターミナルからコマンドを実行するだけです。さまざまなパッケージをターミナルだけで簡単に管理できるようになりますので、これを機にぜひ導入をオススメします。
「Guetzli」のコンパイル
では、「Guetzli」をコンパイルしましょう。まずは、ソースコードをGitHubからダウンロードします。ターミナルを開きます。任意の場所にディレクトリを移動したら、下記のコマンドを実行します。
git clone https://github.com/google/guetzli
自動的にGitHubから最新のソースコードがダウンロードされます。「guetzli」というディレクトリが作業ディレクトリ上に作成されるため、下記のコマンドで移動します。
cd guetzli
続いて、必要なライブラリをダウンロードします。作業ディレクトリは任意の場所で構いません。Homebrewでダウンロードしたパッケージは、基本的に/usr/local
配下にインストールされます。以下のコマンドを実行してパッケージをインストールします。
brew install libpng gflags
Homebrewを使用すれば、パッケージのインストールの前提となる依存パッケージも合わせて自動的にダウンロードされます。依存関係を気にする必要がないところも、Homebrewの使い勝手が良い点ですね。なお、Homebrewをインストールした直後の状態では、brew
コマンドが見つかりません、というエラーが表示される可能性があります。そのような場合には、ターミナルを再起動してください。再起動後は、前述のディレクトリに移動することを忘れずに。
以上で、準備は整いました。コンパイルしましょう!ターミナルで下記のコマンドを実行するだけです。Windowsのようにコンパイル環境をあらかじめ用意しておく必要がないところも、UNIX系互換OSであるmacOSならではの強みですね。
make
このコマンドを実行することで、作業ディレクトリ配下にbin/Release/guetzli
というファイルが作成されます。
「Guetzli」を使用する
ターミナルをそのまま開いている場合は、以下のコマンドを実行することで、JPEGファイルのエンコードを行うことが可能です。
./bin/Release/guetzli <input file> <output file>
input file
にはエンコード前の任意のJPEGファイルの絶対パスまたは相対パスを、output file
には変換後のJPEGファイルの絶対パスまたは相対パスを指定します。後者は任意の名前で構いません。
もっと便利に「Guetzli」を使用する
もし、恒久的に「Guetzli」を使用したいという場合には、毎回毎回bin/Release/guetzli
のパスを指定して実行するには手間がかかります。環境変数のPATH
が設定されているディレクトリ配下にバイナリファイルをコピーしておくことで、コマンド単体で実行できるようになります。たとえば、以下のコマンドを実行してコピーしておくと良いでしょう。
cp ./bin/Release/guetzli /usr/local/bin/guetzli