Adobe社のPhotoshopのアクション機能を上回る自由度でバッチ処理をしたい時のためのノウハウです。特に動画を作るときとか大量の画像を一気に処理する時に必要です。ただし、アクション機能を使ったバッチ処理は単純な自動処理に焦点を当てているので、いくつか機能として制限されています。
- アクションの途中で連番保存できない
- アクションの入れ子ができない
- 条件分岐ができない
といった点があります。これ以降は用意されているスクリプト機能を使って処理します。対応している言語はapple script, vb, JavaScriptの三種類ですが、僕は経験があるJavaScriptで書きます。
JavaScriptの扱いはいいとしてバッチ処理をしたいと思ってるときに、悠長にAPIの検索をしている暇もないのが常です。そこで、Adobeから、アクション機能と同じようにGUIでの処理を記録してスクリプト形式として書いてくれるプラグインがあります。その手順をご紹介します。
- ここからお使いのOSのScript Listener Plugin をダウンロード
- この手順に従って、解凍したファイルをペースト
- そのあとに、ファイル>自動処理>参照で2.で移動したファイルまで行き、Sample Scripts > JavaScript > ScriptListenerOn.jsxを実行
これで、DesktopにPhotoshopで行った操作がlogとして吐き出されます。Windowsで確認したところではJavaScriptとVBと両方書き出されていました。Onにした後は永遠記録されてしまうので、止めたければ、3.と同じフォルダまでさかのぼり、ScriptListenerOff.jsxで停止できます。logの中身は、操作の順番に//======... で操作が区切られているて、その中で使われている処理を眺めていけばなんとなくわかります。これを元に関数化したり、条件分岐を織り交ぜていき、.jsもしくは.jsxファイルとして保存すれば、3.と同様にファイル>自動処理>参照で作ったスクリプトを実行できるようになります。
ファイルを保存する処理のパスですが、デフォルトはPhotoshopのインストールディレクトリとなっているようなので、そこでアクセス権が無いので書き込めませんといったことがあります。(パスをちゃんと指定するか、Photoshopを管理者として実行すればOKです。)
参考までに、上記の機能を使ったサンプルのリンク。
コメントをするにはログインしてください。