大量のファイルをαチャンネルで切り抜く

■プログラム説明(ソースコード説明)
 六角形や特定の形などで切り抜きたい場合があります。パスで切り抜く方法などもありますが、ここではαチャンネルを利用して切り抜きます。この方法では自由な形にできる点と後から切り抜いた画像を調整できるという利点があります。
 サンプルでは最初にαチャンネルの画像を選択します。次に切り抜く画像(ここではJPEG)があるフォルダを指定します。最後に保存先のフォルダを指定すると自動的に処理が行われます。

■ソースコード
// αチャンネルで切り抜いて保存する
function batchCropImage()
{
motoFile = File.openDialog("αチャンネル画像ファイルを指定してください"); // 切り抜くαがある画像ファイルのパス
if (!motoFile) return;
imageFolder = Folder.selectDialog("切り抜かれる画像があるフォルダを選択してください"); // 切り抜かれる画像があるフォルダ
if (!imageFolder) return;
saveFolder = Folder.selectDialog("保存するフォルダを選択してください"); // 切り抜かれた画像の保存先フォルダ
if (!saveFolder) return;
fileList = imageFolder.getFiles("*.jpg"); // PSDの場合はpsdにする
for(i=0; i<fileList.length; i++)
{
fileObj = new File(fileList[i]);
if (fileObj.open("r") == true)
{
// 画像の配置
open(fileObj);
activeDocument.selection.selectAll(); // 全てを選択
activeDocument.activeLayer.copy(); // コピー
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
open(motoFile);
chObj = activeDocument.channels[3]; // アルファチャンネル1を読み込み
activeDocument.selection.load(chObj); // アルファチャンネルを選択
activeDocument.paste(true); // 選択範囲内にペースト
savePSD(saveFolder+"/"+fileList[i].name+".psd"); // ファイル保存
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
}
}
// PSD形式で保存
function savePSD(psdFileObj)
{
var saveFileObj = new File(psdFileObj);
var psdOpt = new PhotoshopSaveOptions();
psdOpt.alphaChannels = true; // チャンネルを保存する
psdOpt.annotations = true;
psdOpt.embedColorProfile = false; // カラープロファイルは埋め込まない
psdOpt.layers = true; // レイヤー情報は保存する
psdOpt.spotColors = false;
activeDocument.saveAs(saveFileObj, psdOpt, true, Extension.LOWERCASE);
}
batchCropImage();


■使い方&注意点
 なし

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