MacでpngquantとJpegoptimを使い、コンテキストメニューから画像圧縮→通知する

MacでpngquantJpegoptimを使い、コンテキストメニュー(右クリックメニュー)から画像圧縮する方法をご紹介します。
どのファイルを圧縮したかを通知として受け取れます。
macOS High Sierraにて動作確認しています。

オンラインサービスTinyPNGの画像圧縮が賢くて良い感じで気に入っていますが、いちいちウェブサービスにアクセスするのが面倒です。

Mac GUIで同様のことをする場合はImageOptimが優秀ですが(ImageOptimのPNG圧縮にはpngquantも採用されています)、pngquantとJpegoptimの場合はコマンドラインから使えるのも良いな、と思いました。

Jpegoptimを使用する場合は、ターゲットキロバイトなどのオプションもその都度柔軟に設定できるようなので、FutureShopなどアップロードする画像サイズの上限が設定されている場合の一括圧縮にも便利だと思いました。
複数のメニュー項目として、お好みのオプションをそれぞれ指定した上で登録することも可能です。

pngquantとJpegoptimをインストールする

Homebrewを使ってインストールします。
Homebrewのインストール方法はこちらをご参照ください)

pngquantをインストールするには、ターミナルで下記のコマンドを打ちます。

brew install pngquant

jpegoptimをインストールするには、ターミナルで下記のコマンドを打ちます。

brew install jpegoptim

画像圧縮をサービスメニューに登録する

画像圧縮をサービスメニューに登録する

Automatorを起動し、「サービス」を新規作成します。

「シェルスクリプトを実行」を選び、
下記の内容で、サービスメニューを保存します。
保存時のファイル名が、「サービス」でのメニュー項目名になります。

「画像」を「引数として」受け取ります。

シェルスクリプトを書くにあたり、「ファイル名をMacの通知に入れる」ことに苦戦しました…が、どうにかなりました。勉強になりました。
かなりのエスケープ処理です。
また、Automatorの処理内容をご覧いただければわかるかと思いますが、成功や失敗などには関係なく通知が届きます。
気になる方はその辺りの処理を入れていただいて、こちらの記事へのコメント等で共有いただけますと嬉しいです(笑)

もし圧縮レベルを変更したい場合は、「–max=80」などのコマンド引数部分を変更します。
圧縮レベルやターゲットサイズごとに別の名前をつけて保存しておくと便利かもしれませんね。

pngquantのオプション一覧
Jpegoptimのオプション一覧

画像を右クリックして実行する

コンテキストメニューを確認

早速、適当な画像を右クリック(2本指クリック)し、コンテキストメニューを開いて「サービス」に登録されているかを確認します。

無事に登録されていたら、実行します。

コンテキストメニューを確認

どのファイルが圧縮されたかの通知が届きます。

この記事にコメントする

メールアドレスは公開されません。コメントは管理者による承認後に公開されます。

関連記事

特に複数のRailsアプリケーションをmacの開発環境で並行して作成している場合。
Railsサーバを起動する際、いちいちターミナルを開いて指定ディレクトリにcdしてrails sするのが面倒だったので、ダブルクリックするだけでRailsサーバを起動できるショートカット(と言いつつシェルスクリプト)を作成してみました。
続きを読む

SendGrid簡単な設定でSMTPサーバを利用できます。
SendGridの設定状態によって、macOSのMail.appにてSendGrid経由でメールを送信すると添付ファイルが消えてしまうことが判明しました。
その場合の対処法です。
続きを読む

iPad Pro 9.7インチを買取に出して、iPad Pro 10.5インチを予約しました。
iPad Pro 9.7インチもとても気に入ってはいたのですが、だからこそ10.5インチを欲しいと思いました。
※画像は、だましだまし使い続けているiPad2とiPad Pro 9.7インチを並べたものです。
続きを読む

BACKBLAZE

BACKBLAZEのHDD輸送オプションが優秀なので、バックアップサービスCrashPlanとDropbox Proの併用をやめてBACKBLAZEとDropbox無料版の併用に移行しました。

続きを読む