ImageOptim-CLI - JPEGmini for Macをコマンドラインから操作することができる圧縮ツール

S 2016 11 03 12 22 21

Mac用の高品質な画像圧縮アプリ「JPEGmini for Mac」。JPEGファイルをできるだけ劣化することなく圧縮できる大変便利なツールですが、Macアプリ版は残念ながらコマンドラインから使用することはできません。またAppleScriptから呼び出すことも不可能となっています。

本日紹介する「ImageOptim-CLI」はこの欠点を補うことができるツールです。ImageOptimやImageAlpha、JPEGmini for Macといった各種画像処理アプリを組み合わせ、画像圧縮処理を自動化することが可能となります。

先ほど述べたようにJPEGmini for MacはAppleScriptをサポートしていないため、作業の自動化のためにはターミナルアプリをアシスティブデバイスとして登録し、アプリの操作をエミュレートできるよう準備しておく必要があります。結構強引な手段ですが、一応作業の自動化は可能な模様です。

事前準備

JPEGminiを組み合わせる場合、システム環境設定を起動し「セキュリティとプライバシー > アクセシビリティ」からiTerm.appやTerminal.appを登録しておきます。

Security

この登録を行わないと初回実行時に以下のような警告が表示されます。

✘ To automate JPEGmini we need to add Terminal.app (or iTerm.app etc) to the 'support for assistive devices' whitelist. Please see README for more details.

一回動かすとリストにターミナルアプリが登録された状態になりますので、それから設定を行うと分かりやすいかもしれません。

インストールと実行

ImageOptim-CLIはShellとAppleScriptを組み合わせたツールですが、インストールにはnpmを使用します。以下のコマンドでインストール可能です。

npm install -g imageoptim-cli

またはzipファイルをダウンロードして手動でインストールもできます。この場合の方法は公式サイトを参照してください。

JPEGminiを利用して圧縮実行

imageOptimのオプションは以下の通り。コマンド名はimageoptimではなくimageOptim(Oが大文字)なのでご注意ください。

Usage: imageoptim [options]

Options:

  -d, --directory       directory of images to process
  -a, --image-alpha     pre-process PNGs with ImageAlpha.app *
  -j, --jpeg-mini       pre-process JPGs with JPEGmini.app **
  -m, --min-quality     pngquant min quality parameter
  -s, --skip-if-larger  pngquant use --skip-if-larger
  -q, --quit            quit all apps when complete
  -c, --no-color        disable color output
  -h, --help            display this usage information
  -e, --examples        display some example commands and uses
  -v, --version         display the version number
  --verbose             display detailed, per-file info on optimizations

*  http://pngmini.com
** https://itunes.apple.com/us/app/jpegmini/id498944723

肝心のJPEGminiを利用した圧縮には「-j, --jpeg-mini」オプションを使用します。

特定のJPEGファイルを圧縮したい場合、例えば以下のように実行します。ファイル名はimageOptimの引数ではなくパイプで渡さないといけない模様です。

find ~/tmp3 -name '*.jpg' | imageOptim -j
echo /Users/sora/tmp3/image.jpg  | imageOptim -j

特定のディレクトリ内に存在するJPEGファイルを全て圧縮したい場合「-d ディレクトリ名」オプションを使います。

imageOptim -j -d ~/tmp3

これらのコマンドを実行するとJPEGminiのGUIが立ち上がり、自動で圧縮処理が始まります。実際に動作している様子を撮影したデモ動画も公開されています。

まとめ

ImageOptim-CLIを使用すればJPEGmini for Macを利用した圧縮処理を自動化することができます。実行中はデスクトップにJPEGminiが立ち上がり、自動操作の邪魔をするとうまく動かなくなるという欠点がありますが、作業効率化を図ることはできそうです。

I screenshot1 タイトル ImageOptim-CLI
公式サイト https://github.com/JamieMason/ImageOptim-CLI
ソフトアンテナ https://www.softantenna.com/softwares/7505-image-optim-cli
説明 ImageOptim、ImageAlpha、JPEGmini for Macを組み合わせて画像圧縮処理を自動化することができるツール。

スポンサーリンク