●PhotoShop4.0 Scripting

● Professional DTPでの記事(PDF版-Acrobat3.0Jが必要です)

PhotoShopのスクリプティング...ver4.0になってアクションが付きました。決まった手順を登録して自動処理が可能になりました。またバッチは,あるフォルダにある画像をすべてアクションで処理して,別フォルダに保存するということを可能にします。しかし,QuarkXPressのように多くのプロパティがあり,いろいろとできるのかというと残念ながらまだできません。辞書をみますと,PhotoShopの命令はただ一つ do script だけです。これはどう使うかというと,

tell application "Adobe Photoshop(R) 4.0J"
  do script "画像解像度"
end tell

と,do scriptの後に,アクション名称を書くことで,AppleScriptからPhopShopを操作できます。しかし,このアクションは,ダイアログを自動表示させ,手入力させて処理を続けるか,あるいは決まった定数値で,処理を続けていくかしかできません。変数をもたせることができればよいのですが...。では,異なった値を自動入力させるにはどうしたらいいでしょうか。

(上記スクリプトは,ダイアログ表示させたところで,止まって入力を待ちます。60秒(default)間に応答がないと,time outでエラーになります -加筆2/6)

 PreFab Playerの利用...既にご存じかもしれませんが,Prefab Playerは,スクリプトできないアプリケーションをスクリプト可能にするアプリケーションです。どう可能にするかは,ダイアログ表示で入力フィールドに値を入れたり,アプリケーションのメニューを選択したり,画面上の任意の座標位置を指定してボタンを押させたりすることができます。つまり,人間が手作業で行う手順をそのままなぞらせるようにすることができます。

tell application "Adobe Photoshop(R) 4.0J"
 activate
end tell

tell application "PreFab Player"
 do menu menu item "画像解像度" of menu "イメージ"
 type "72"
 type enter

end tell

これは,Adobe Photoshop(R) 4.0Jを前面に出し,次にPreFab Playerで,メニューの[イメージ]-[画像解像度]を選び,でてきたダイアログの最初の入力フィールドに 72 を入力して,enterキーを押すことを示しています。72の部分を変数にすることも可能ですから,これを利用すれば,変数値の自動入力が可能になります。

 バッチでは...入力フォルダの第一階層にあるデータしか処理対象になりませんが,フォルダ選択の部分をAppleScriptでつくり,それより深いところにあるデータや複数のフォルダを処理対象として,repeat,do scriptで,処理する。また,保存先も同一フォルダで,データを入れ替えたり,その際ネーミングを変更したりもできるようになります。今後のバージョンアップでスクリプトも強化されていくと(PageMakerのスクリプトの強化のされ方から)推察します。

 今後,具体的な使用例ができましたら,ここにアップ,報告させていただきます。

2/7 レポート
 Batch GoGoGoなるスクリプトを作りました。これは,バッチでの処理対象データを指定したフォルダ以下の階層まで対象にするものです。まだ,指定するアクション名は,コーディングでダイレクトに記入していますので汎用性を持たせていません。2/10締め切りの原稿Professional DTP 4月号の収録スクリプトに間に合うか! できたら,デモ版をLibraryに登録します。

 上記を作ってわかったこと。先に,バッチで「データを入れ替えたり,その際ネーミングを変更したり...」と書いたが,PreFab Playerを用いないと難しいとわかった。save時にダイアログ表示させないとかができないようである(Batch GoGoGoは,実行するアクションがファイルフォーマットを変更しなくてはいけない場合,どこに保存するかのダイアログが表示されてしまいます)。