スキャナでアルバム写真をスキャンして、PhotoShopの「角度を補正しての切り抜き」で写真を分割しました。
しかし、分割したファイル数がスキャンした写真毎に異なるために、「バッチ処理」を利用した保存方法が分かりません。

そこで、JavaScriptを利用して「一括保存」するスクリプトを作成しました。
指定したフォルダの画像(*.bmp)全てに対して、PhotoShopに登録されたアクション("アクション 3", "セット 1")を適用して、指定したフォルダにJPGとして保存するスクリプト
アクションは適時作成してください。今回の場合は次の手順で作成します。
ダウンロード先はaction.jsxです。(UTF-8形式で保存)
/**
ユーザの変更値(ユーザ毎に変更が必要)
**/
IMG_EXTENSION = "*.bmp";
ACTION_NAME = "アクション 3";
SET_NAME = "セット 1";
/**
桁あわせ(0で埋める)
@param 桁数
**/
Number.prototype.fillZero = function(n) {
var r = this.toString().split('');
while(r.length < n) {
r.unshift('0');
}
return r.join('');
}
/**
JPGで保存する
@param ファイル名
**/
function saveAsJPG( Name ) {
var fileObj = new File( Name );
var jpegOpt = new JPEGSaveOptions();
jpegOpt.embedColorProfile = true;
jpegOpt.quality = 12;
jpegOpt.formatOptions = FormatOptions.PROGRESSIVE;
jpegOpt.scans = 3;
jpegOpt.matte = MatteType.NONE;
activeDocument.saveAs(fileObj, jpegOpt, true, Extension.LOWERCASE);
fileObj = null;
jpegOpt = null;
}
/**
登録済みのアクションを実行する。
@param Actn アクション名
@param ActSet アクションセット名
**/
function doAction( Actn, ActSet )
{
var actRef = new ActionReference();
actRef.putName( charIDToTypeID( "Actn" ), Actn );
actRef.putName( charIDToTypeID( "ASet" ), ActSet );
var actDesc = new ActionDescriptor();
actDesc.putReference( charIDToTypeID( "null" ), actRef );
executeAction( charIDToTypeID( "Ply " ), actDesc, DialogModes.NO );
actRef = null;
actDesc = null;
}
/**
ファイルを閉じる
**/
function doFinsh() {
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
/**
フォルダを選択
**/
function selectFolder( Comment ) {
var folderObj = Folder.selectDialog( Comment );
return folderObj;
}
/**
ファイルを開く
**/
function doOpen(fileName) {
var fileRef = new File(fileName);
open (fileRef);
fileRef = null;
}
/********** PhotoShop向け ***************/
if (BridgeTalk.appName == "photoshop") {
main();
}
function main() {
var inPath = selectFolder("処理したいファイルが存在するフォルダを選択");
var outPath = selectFolder("処理後のファイルを保存するフォルダを選択");
var fileList = inPath.getFiles(IMG_EXTENSION);
var i;
for (i = 0; i < fileList.length; i ++) {
// 元ファイルを保存する
doOpen(inPath + "/" + fileList[i].name);
saveAsJPG(outPath + "/" + i.fillZero(4) + ".jpg");
while(documents.length) {
// 開いたファイルにアクションを適用
doAction(ACTION_NAME, SET_NAME);
var num = 1;
while(documents.length > 1) {
// 分割されたファイルを保存する
saveAsJPG(outPath + "/" + i.fillZero(4) + "_" + num++ + ".jpg");
doFinsh();
}
doFinsh();
}
}
}
各関数の説明は今後行っていきますが、そのままコピーすれば使えると思います。