50%縮小する、45度回転させる、フォーマットを変換する……画像処理の多くはルーティンワークと言っていいのではないでしょうか。そのワンパターンな作業を自動化できるとしたら? しかもフォルダへ画像ファイルをドラッグ&ドロップするだけでいいとくれば、検討しない手はないですよね。今回は、「フォルダアクション」の使いかたを紹介します。
フォルダアクションのしくみ
フォルダアクションとは、フォルダにひも付けされたプログラムの総称です。macOSには古くからある機能で、当初はAppleScriptというMac独自のスクリプト言語(実行に手間がかからない簡易プログラム向きの言語)を利用していましたが、いろいろな機能を持つブロックを並び替える程度で自動処理プログラム「ワークフロー」を作成できる「Automator」が登場してからは、ワークフローをひも付けることが一般的になりました。
フォルダアクションを有効にすると、システムはそのフォルダの内容を数秒おきに監視し、変更が生じていた場合にはひも付けられたAppleScriptやワークフローを実行します。どのような処理が行われるかは、ひも付けられたAppleScript/ワークフロー次第ですが、ファイル操作に関わるかなりのことが可能です。
Automatorに用意されたワークフロー作成用の機能(アクション)を例にすると、ファイルとフォルダカテゴリだけを見ても、「Finder項目を移動」や「Finder項目をコピー」、「新規フォルダ」といったアクションが用意されています。画像処理関連の機能は写真カテゴリにまとめられ、「イメージをサイズ調整」や「イメージを回転」といったアクションを利用できます。
つまり、Automatorでフォルダアクション用ワークフローを作成し、適当なフォルダにひも付ければ、そのフォルダにファイルをドラッグ&ドロップするだけで希望の処理を自動化できるようになります。画像の縮小や回転、フォーマット変換はお手のものですよ。
フォルダアクション用ワークフローを作ろう
フォルダアクションにひも付けるワークフローを作成するには、Automatorで新規書類を作成したときに現れるダイアログで「フォルダアクション」を選択します。するとワークフロー作成画面に遷移するので、右上にあるプルダウンメニューを操作して対象とするフォルダを選びます。
いよいよワークフロー作成に着手しますが、その前にどのような処理を行うワークフロー決めておかなければなりません。面白味のないルーティンワークを自動化することが今回のテーマですから、「位置情報の削除」はどうでしょう? macOSに標準装備の「プレビュー」で作業する場合、詳細情報画面を表示してGPSタブにある「位置情報を削除」ボタンをクリックしますが、同等の効果が得られるワークフローがあればフォルダアクションにピッタリです。
どのアクションをどの順序で並べるかについては、答えをいってしまうと「(位置情報を含む)EXIF情報を持たない画像フォーマットに変換」したあと、JPEGなど所定のフォーマットに再変換すればいいのです。具体的には、フォルダにドラッグ&ドロップした画像ファイルをBMP -- EXIF情報を持てない画像フォーマットのうえ変換に伴う劣化もありません -- に変換してEXIF情報を失わせ、その後JPEGに変換すればいいことになります。
しかし、ここに落とし穴が。変換後のファイルを同一のフォルダ(フォルダアクションを設定したフォルダ)に保存したままでは、フォルダアクションが反応してしまうのです。前述したとおり、システムは数秒おきにフォルダの内容をチェックするので、BMP→JPEG→BMP……と変換処理がエンドレスで続くことになります。
この問題を解決するのが、サブフォルダの作成です。適当なフォルダを作成しておき、JPEGに変換後の画像ファイルをそこへ移動させるのです。システムは下位のフォルダの内容まで監視しないため、フォルダアクションを設定したフォルダの子フォルダとするのが最適でしょう。
こうして作成したワークフローは、Finderで対象のフォルダをControl+クリックすると現れるコンテキストメニューで「フォルダアクション設定...」を選択すると、制限されたサービス(動作には事前の確認が必要な機能)であることを確認したうえで、ひも付けできるようになります。
これで、ドラッグ&ドロップするだけで位置情報を取り除けるフォルダの完成です。Automatorを利用したワークフローの作成は、ややハードルは高いものの、工夫次第でいろいろな処理が可能になります。自作のワークフローで退屈なルーティンワークを減らしてみては?