Edited at

pngquant + Automatorを使って画像ファイルを自動で圧縮する方法


前提


  • オンラインの画像圧縮サービスいちいち使うのめんどくさい方向けです。

  • ローカルで圧縮を行うので、オフラインでも実行可能です。

  • Homebrew をインストール済みの方の場合、約10分程度で設定できます。


環境


  • pngquant, 2.12.0 (January 2018)

  • Homebrew 1.7.6

  • Automator


TL;DR

こんな感じで、特定のフォルダに画像ファイルを移動させたタイミングで、画像圧縮をしてくれます。 397KB から 100KB に圧縮されているのが分かると思います。なお、実行しているかどうかは上部の歯車みたいなアイコンで分かるようです。

10月-08-2018 02-33-37.gif


手順


1. Homebrew で pngquant をインストールする

$ brew install pngquant

※ Homebrew を使わなくても、 tarファイルを直接ダウンロードすることもできるようです。

https://pngquant.org/pngquant.tar.bz2


2. Automator でフォルダアクションをつくる

Automator は、 Mac 純正のアプリケーションです。その名の通り、いろいろと自動で実行してくれるアプリです。正直そんなに使ったことありません。とにかく、以下の手順で行っていけばOKです。

なお、フォルダアクションとは、指定のフォルダに項目が追加される時に任意のスクリプトとかを実行してくれるアクションです。


  • Cmd + Space で Spotlight 検索を出し、 Automator と打ち込んで開いてください。

    10月-07-2018 23-40-28-3.gif


  • Automator を開くと、以下の画面が現れるので、 フォルダアクション を選択してください。

    スクリーンショット-2018-10-08-2.18.56.png


  • 左上の 名前 ボックスから シェルスクリプトを実行 を選択して、ダブルクリックか右のワークフローにドラッグ&ドロップしてください。

    10月-08-2018 02-21-22.gif


  • 入力の引き渡し方法引数として に変更し、以下のスクリプトをコピペしてください。実行対象とするフォルダ名は compress としました。名前は何でも良いと思います。

    10月-08-2018 02-25-57.gif


# コピペするスクリプトはこちら

$ /usr/local/bin/pngquant --ext .png --force "$@"


  • 最後に Cmd + S でワークフローに名前をつけて保存してください。

これで設定は完了です。冒頭のように、 compress フォルダに画像を突っ込むと自動的に圧縮されるようになります。なお便利なことに Mac の場合、 メタデータはデフォルトで削除されるようになっているようですね。

$ pngquant -h

options:
...
--strip remove optional metadata (default on Mac)
...


参考文献