Mac用の高品質な画像圧縮アプリ「JPEGmini for Mac」。JPEGファイルをできるだけ劣化することなく圧縮できる大変便利なツールですが、Macアプリ版は残念ながらコマンドラインから使用することはできません。またAppleScriptから呼び出すことも不可能となっています。
本日紹介する「ImageOptim-CLI」はこの欠点を補うことができるツールです。ImageOptimやImageAlpha、JPEGmini for Macといった各種画像処理アプリを組み合わせ、画像圧縮処理を自動化することが可能となります。
先ほど述べたようにJPEGmini for MacはAppleScriptをサポートしていないため、作業の自動化のためにはターミナルアプリをアシスティブデバイスとして登録し、アプリの操作をエミュレートできるよう準備しておく必要があります。結構強引な手段ですが、一応作業の自動化は可能な模様です。
事前準備
JPEGminiを組み合わせる場合、システム環境設定を起動し「セキュリティとプライバシー > アクセシビリティ」からiTerm.appやTerminal.appを登録しておきます。
この登録を行わないと初回実行時に以下のような警告が表示されます。
✘ 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が立ち上がり、自動操作の邪魔をするとうまく動かなくなるという欠点がありますが、作業効率化を図ることはできそうです。
タイトル | ImageOptim-CLI | |
---|---|---|
公式サイト | https://github.com/JamieMason/ImageOptim-CLI | |
ソフトアンテナ | https://softantenna.com/softwares/7505-image-optim-cli | |
説明 | ImageOptim、ImageAlpha、JPEGmini for Macを組み合わせて画像圧縮処理を自動化することができるツール。 |