フォルダ内の画像ファイルを読み込み指定サイズ、指定位置にタイル状に配置する

■プログラム説明(ソースコード説明)
 1行目でJPEG画像があるフォルダへのパスを指定します。次にgetFiles()でJPEGファイルの一覧を取得します。取得したファイルの数だけ処理を繰り返します。ファイルのパスはfullnameやnameでなくfsNameを使わないと正しいパスを得る事ができません。次に画像を読み込み指定座標に移動、サイズを調整します。位置はpositionプロパティに二次元配列として入れます。画像サイズはwidth、heightプロパティに入れます。1枚配置したら横方向に座標をずらしカウンタを1増やします。指定された枚数を超えたらカウンタを0にして表示するY座標を下にずらし、X座標を左側に設定します。これを繰り返すことで画像がタイル状に配置されます。

■ソースコード
folderRef = new Folder ("/ai_image/");
fileList = folderRef.getFiles("*.jpg");
docObj = activeDocument;
x = 100;
y = 450;
sx = 100; // 開始X座標
w = 72; // 横幅
h = 48; // 縦幅
dx = w + 18; // 横のオフセット
dy = h + 12; // 縦のオフセット
wCount = 3; // 横に表示する最大枚数
hCount = 3; // 横に表示する最大枚数
wCntTmp = 0; // カウンタ(テンポラリ)
hCntTmp = 0; // カウンタ(テンポラリ)
for (i=0; i<fileList.length; i++)
{
fileRef = new File (fileList[i].fsName);
pItem = docObj.rasterItems.add();
pItem.file = fileRef;
pItem.position = [x,y];
pItem.width = w;
pItem.height = h;
x = x + dx;
wCntTmp++;
if (wCntTmp >= wCount)
{
wCntTmp = 0;
x = sx;
y = y - dy;
hCntTmp++;
if (hCntTmp >= hCount) break;
}
}


■使い方
1:画像を配置するドキュメントをアクティブにします。
2:ファイルメニューからスクリプトを実行します。
3:画像がタイル状に配置されます。


■ポイント
 一度に配置する画像の枚数を制限する場合には、もう1つ制限枚数を示すカウンタ用の変数を用意します。画像を1つ配置するごとにカウンタの値を1増やして一定数を超えたらファイルを保存するなどの処理を行います。

■実際のスクリプトをダウンロード(sample.js.zip)