Automatorで高度な画像フィルターを利用して、その便利さに気付く

今まで、Automator(オートメーター)のことを見くびっていた。Automatorっていうのは、OSX 10.4の頃から登場した棒を斜めに持ったロボット君だ。アプリケーションフォルダの中にいるはず。きっと、準備万端、いつでも指示通り動けるように今か、今かと待機していると思う。にもかかわらず、ほとんど使ったことがなかった...。

過去何度か、試しに起動して、適当に弄って、よく分からずに閉じる、ということを繰り返しただけ。よく分からない時の自分への言い訳は、「どうせApple Scriptが機能限定で見栄えよく使えるようになっただけだろうから、余分なことは覚えなくてもいいや。」ぐらいに考えていた。(自分勝手な思い込み)

ところが、Automatorに真剣に取り組んでみると、「何だかこれはちょっと凄いことになっているぞ!」ということに気付いたのだった。

画像フィルタを試す

ワークフローの作成
      • Automatorに指示する一連の手順をワークフローと呼ぶらしい。ワークフロー = Automator書類と考えて良いと思う。(ワークフローをアプリケーションとして保存する形式もある)
  • まずはAutomatorを体感してみる。
    • Automatorを起動すると、まずは新規ワークフローの開始点を訊かれるので、以下のように設定して開始!

    • ライブラリの写真を選択して、「Quartz コンポジションフィルタをイメージファイルに適用」を右側にドラッグ&ドロップ

    • 確認を求めるダイアログが表示された。
    • フィルタ処理によってオリジナル画像を変更したくないので、追加ボタンを押した。

    • ライブラリの写真を選択して、「プレビューでイメージを開く」を右側にドラッグ&ドロップ
    • 最終的にAutomatorには以下の手順が並んでいる状態


画像フィルターの適用
  • 以前保存しておいたプレビュー.appのアイコン画像にフィルターを掛けてみた。
  • Automator右上の実行ボタンを押してスタート。
  • フィルターの種類や設定値を弄っていろいろやってみた。
元画像
セピア
白黒
ブラー
(ピンぼけ風)
ズームブラー
(ズーム中のぶれ風)
モーションブラー
(手ぶれ風)
色鉛筆
点に変換
(油絵風かな?)
結晶化
ちぎり絵風)
ピクセレート
(モザイク処理風)

(網掛け印刷風)
  • ...まだまだたくさんのフィルタがある。メニューを見ると全41種類(サイズ調整、カラー調整も含む)

  • これだけのフィルターがOS標準で搭載されていて、Automatorから簡単に利用できるのであった!
  • しかも各種パラメーターを調整して、フィルターに様々な変化を与えることも出来る。

ワークフローがそのままGUI

  • フィルターを操作していて気付いたのだが...
    • ワークフローはGUIの操作パネルの並びなので、スクリプトコードにあたるワークフロー自体を操作して、調整できるところが良い。
    • もしAppleScriptでやろうとすれば操作パネルのGUIも設計する必要があるのだが、Automatorならその必要がないのだ!
    • そもそも自分は、AppleScriptからQuartzフィルタを利用する方法を知らない...。

印刷の機能拡張として保存する

今度は、PDFを画像に変換するワークフローを以下のように作成してみた。

  • ライブラリのPDFを選択して、「PDF ページをイメージとしてレンダリング」を右側にドラッグ&ドロップ
  • ライブラリの写真を選択して、「プレビューでイメージを開く」を右側にドラッグ&ドロップ

  • これを ファイル >> プラグインとして保存... で以下のように保存した。

  • 何かを印刷してみる。
  • すると、PDF出力ボタンの中に先程保存した「to_PNG」が見える!

  • それを選択して実行すると、PNG形式の画像に変換された!
  • 複数ページのPDFでは、複数のPNG画像が出力された。
  • できれば、連続する1ページの画像として出力したいところだが、その方法は分からなかった...。

プラグインのワークフローいろいろ

  • プラグインとして保存する場合、以下のような形式が準備されていた。


プリントワークフロー
  • 上記で書いた「印刷の機能拡張として保存する」場合のプラグイン形式。
  • to_PNGは、~/Library/PDF Services/to_PNG.app として保存されている。(.appなので、アプリケーション形式なのであった。)
Finder

  • to_PNGは、~/Library/Workflows/Applications/Finder/to_PNG.workflow として保存されている。
スクリプトメニュー

  • to_PNGは、~/Library/Scripts/to_PNG.workflow として保存されている。
iCalアラーム
  • iCalアラームとして実行される。

  • to_PNGは、~/Library/Workflows/Applications/iCal/to_PNG.app として保存されている。
イメージキャプチャ
  • アプリケーション >> イメージキャプチャ.appで画像を読み込む時に利用できる。

  • to_PNGは、~/Library/Workflows/Applications/Image Capture/to_PNG.app として保存されている。
フォルダアクション
  • フォルダアクションとして、ワークフローを利用できる。

  • to_PNGは、~/Library/Workflows/Applications/Folder Actions/to_PNG.app として保存されている。
  • さらに、~/Library/Scripts/Folder\ Action/ Scripts/to_PNG.scpt として上記ワークフローを実行するスクリプトも自動生成された。(以下)
  • フォルダアクションでは、以下のスクリプトが実行されて、その中からワークフローが呼び出される仕組みのようだ。
on adding folder items to this_folder after receiving added_items
	tell application "Leopard HD:Users:Guest:Library:Workflows:Applications:Folder Actions:to_PNG.app"
		open added_items
	end tell
end adding folder items to

その他

  • ワークフローを新規作成した時に必ず選択する開始点は、ワークフローによって処理する対象のこと。
    • 「選択」や「求める」で検索したアクションが、処理対象を取得して次のアクションに渡してくれる。
    • ファイルやフォルダを直接ドラッグ&ドロップしても OK。
    • 開始点は後で自由に変更することができる。
  • プレビュー.appで画像フィルタとして代用できるのは、「カラーを調整」で露出やシャープネスなどを調整する基本的なものだが、
    • Automatorを利用すれば、かなり高度なQuartzフィルタも活用することができる。
    • 組み合わせれば、さらに使えるレタッチアプリケーションになりそう。
    • こうなるとレイヤー機能も欲しくなるのだが、それは無理か...。(そもそも名前がプレビューなのだ)


Automatorは、かなり気が利く、高性能なロボットになっていたのだった!今でもきっと待ち続けている。使って欲しいと願いながら...。