画像を読み込んで配置する

 それでは次にPhotoshop CS5で画像を表示してみましょう(MacOS Xの場合で説明しています)。まず、ハードディスク内のルートディレクトリ(一番上の階層)にimgフォルダを作成し、その中に0001.jpgという名前のJPEG画像を作成し、入れておいてください。
 準備ができたら以下のプログラムを入力し実行してみてください。

fileObj = new File("/img/0001.jpg");
open(fileObj);

 自動的に0001.jpg画像が開かれ表示されます。ハードディスク名に日本語を使っていて濁点などが入っている場合には期待通り動作しない可能性があります(Windowsでは関係ありません)。また、ハードディスク名に限らずフォルダ名には日本語は避けてください。どうしても使用しないといけない場合には濁点などは使わないでください。また、MacOS X + Bridge CS5 [3.0.0.464]ではファイル名に濁点などが含まれると正しく検索できないなどの問題があります
 ハードディスク名とフォルダ名は/(スラッシュ)で区切って指定します。MacOS Xでは:がフォルダの区切り記号になっていて、これを使用することもできます。Windowsであれば\(バックスラッシュ)になります。このように指定することで任意の場所にある画像を開く事ができます。

 画像を開く事ができましたが、この開かれた画像を他のドキュメントに配置するには、どうすれば良いのでしょうか。このような場合にはコピー&ペーストをスクリプトで処理します。以下のスクリプトは画像を開いて新規ドキュメントに貼付けるものです。

preferences.rulerUnits = Units.POINTS;
docObj = app.documents.add(320,240);
fileObj = new File("/img/0001.jpg");
open(fileObj);
activeDocument.selection.selectAll();
activeDocument.activeLayer.copy();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
docObj.paste();

 コピーするためにはactiveDocument.selection.selectAll()として全てを選択させます。次にアクティブになっているレイヤーをactiveDocument.activeLayer.copy();としてコピーします。activeDocument.close()で開いた画像ファイル(ドキュメント)を閉じます。
 最後にpaste()でコピーした画像をドキュメントに貼付けます。

 単純に貼付けるだけでなく、その後位置を移動させることもできます。これはtranslate()を使って、どの程度移動させるかを指定します。この場合は絶対座標でなく相対的な座標になるので注意してください。

preferences.rulerUnits = Units.POINTS;
docObj = app.documents.add(320,240);
fileObj = new File("/img/0001.jpg");
open(fileObj);
activeDocument.selection.selectAll();
activeDocument.activeLayer.copy();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
docObj.paste();
activeDocument.activeLayer.translate(-20,30);

 このようにして文字や画像を配置したり任意の位置に移動させて自動化させていくことができます。Photoshop CS5の場合には標準で用意されている命令では実現が難しい場合にはScripting Listenerプラグインを入れることで自動的に操作をJavaScriptの命令として生成してくれるものがあります。これと組み合わせることでPhotoshopのほとんどの機能を利用することができるようになります。