前回、自動で画像圧縮したスクリーンショットを撮る方法を紹介しました。
この方法を流用すればPNG画像を簡単に圧縮できるので、右クリックで行う方法とフォルダーアクションで行う方法を説明します。
画像圧縮プログラム、アプリダウンロード
まずは画像圧縮を行うプログラム(pngquant)、アプリ(ImageOptim)をダウンロードします。
画像圧縮プログラムはHomebrewからのダウンロード方法を紹介していますので参考までに。
合わせてImageOptimのダウンロードも行います。
フォルダアクションで画像圧縮
1つ目の方法は指定するフォルダにコマンドを組み込み、PNG画像をそのフォルダに投入すると自動で画像圧縮を行う方法です。
設定方法はとても簡単です。
アプリケーション➡︎Automator.appを起動して、「フォルダーアクション」を選択します。
フォルダアクションコマンド入力
ライブラリ下にあるユーティリティの「シェルスクリプトを実行」を2回選択し、シェルスクリプト入力ウィンドウを二つ展開します。
上部の「"フォルダアクション"は、次の場所に追加されたファイルやフォルダを受け取る:」横のプルダウンメニューから「その他..」を選択し、アクションを設定したいフォルダを選びます。
シェルスクリプト入力ウィンドウ内の「入力の引渡し方法:」を「引数として」を選択します。
するとスクリプト内容に以下の内容が追加されます。
for f in "$@"
do
echo "$f"
done
上記のスクリプトの後にpngquantとImageOptimを動作させるスクリプトを入力していきます。
pngquantコマンド
一つ目のウィンドウに以下のコマンドを入力します。
/usr/local/bin/pngquant --speed 1 --ext .png --force "$@"
上記のコマンドの簡単な説明はpngquantの説明でしていますので自分なりにカスタマイズしたい場合は御確認ください。
ImageOptimコマンド
もう一つのウィンドウにはImageOptimのコマンドを入力します。
メタ情報を削除するために入れているのですが、わずかにファイルサイズが軽くなります。
open -a ImageOptim.app "$@"
後は、保存して終了です。
一度作成すれば他のフォルダにアクションを適用することもできます。
フォルダ上で右クリック➡︎コンテキストメニュー内の「フォルダアクション設定...」を選択するだけです。
作業自体はさほど難しくないと思います。
作成したフォルダアクションのファイル場所
作成したフォルダアクションは~/Library/Workflows/Applications/Folder Actions
に格納されます。
Finderで開く場合はファイルが不可視になっているので、上部メニュー移動を選択して⌥ optionを押すとライブラリが開けます。
macOS 10.12 Sierra以降ではライブラリフォルダへショートカットキーが割り当てられました。ライブラリフォルダへのアクセスも簡単になったので詳しくは下記の記事を御確認ください。
フォルダアクションの説明は以上になります。
右クリックで画像圧縮
次は右クリック➡︎コンテキストメニューから画像圧縮を行う方法を説明します。
コマンドの内容はフォルダアクションと一緒なのでわかりやすいと思います。
画像圧縮用のアプリ、プログラムをダウンロードしたら、アプリケーション➡︎Automator.appを起動して、「サービス」を選択します。
フォルダアクションの場合と同様に、ライブラリ下にあるユーティリティの「シェルスクリプトを実行」を2回選択し、シェルスクリプト入力ウィンドウを二つ展開します。
上部の「"サービス"は、次の選択項目を受け取る:」横のプルダウンメニューから「イメージファイル」を選択し、「検索対象:」横のプルダウンメニューから「全てのアプリケーション」を選びます。
あとはフォルダコマンド入力の方法と同じになります。
保存後は対象PNGファイルで右クリックのコンテキストメニューから選択すれば画像圧縮ができます。
もしコンテキストメニューに作成したワークフローが表示されない場合は、システム環境設定➡︎キーボード➡︎ショートカットタブ➡︎サービスに作成したワークフローがあるのでチェックを入れて再度確認してみて下さい。
またコンテキストメニューにサブメニューが作成されてしまって、サービスへの階層が深くなって困るという場合があるかと思います。
下記の記事でサブメニューを作成しないようにする方法を説明しています。困っている方は御確認ください。
以上になります。
一度設定をしてしまえば簡単に画像圧縮ができ、なにより無料で実装できます。
圧縮作業が多い時はとても作業が捗るかと思います。 参考になれば幸いです。