Photoshop CS4編 フォルダ内にあるQuickTimeムービーのサムネール画像を作成する

今回はPhotoshop CS4以降で動作するスクリプトです。CS3は直接QuickTimeムービーを開くことができないためです。
まず、最初のスクリプトはフォルダ内に複数あるQuickTimeムービーのサムネール画像(JPEG形式)を作成し、同じフォルダ内に保存するものです。このようなフラットな階層に全てのQuickTimeムービーがある場合は、無理してスクリプトを使わなくてもアクション&バッチ処理でも可能です。


// フォルダ内にあるQuickTimeムービーのサムネール画像(JPEG)を作成する
(function(){
var w = 384; // サムネール画像の横幅
var h = 216; // サムネール画像の縦幅
var folderObj = Folder.selectDialog("QuickTimeムービーがあるフォルダを選択してください");
if (!folderObj) return;
var saveUnit = preferences.rulerUnits; // 単位設定を保存
preferences.rulerUnits = Units.PIXELS;
var fileList = folderObj.getFiles("*.mov");
for(var i=0; i<fileList.length; i++){
app.open(fileList[i]);
app.activeDocument.resizeImage(w, h); // サムネール画像のサイズ
var fileObj = new File(fileList[i].path + "/"+ fileList[i].name.split(".mov")[0]+".jpg");
var jpegOpt = new JPEGSaveOptions();
jpegOpt.embedColorProfile = true;
jpegOpt.quality = 8;
jpegOpt.formatOptions = FormatOptions.PROGRESSIVE;
jpegOpt.scans = 3;
jpegOpt.matte = MatteType.NONE;
app.activeDocument.saveAs(fileObj, jpegOpt, true, Extension.LOWERCASE);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
preferences.rulerUnits = saveUnit; // 元の単位に戻す
})();
QuickTimeムービーが、以下のようなフォルダ内にある場合にはバッチ処理よりもスクリプトの方が便利です。

[フォルダ]
 ├[フォルダ]
 │└QuickTimeムービー1
 ├[フォルダ]
 │└QuickTimeムービー2
 └[フォルダ]
  └QuickTimeムービー3

// フォルダ内にあるQuickTimeムービーのサムネール画像(JPEG)を作成する(2)
(function(){
var w = 384; // サムネール画像の横幅
var h = 216; // サムネール画像の縦幅
var parentFolderObj = Folder.selectDialog("QuickTimeムービーのフォルダがある親フォルダを選択してください");
if (!parentFolderObj) return;
var saveUnit = preferences.rulerUnits; // 単位設定を保存
preferences.rulerUnits = Units.PIXELS;
var folderList = parentFolderObj.getFiles(); // 全てのファイル/フォルダ情報を取得
for(var j=0; j<folderList.length; j++){
if (folderList[j].getFiles){ // フォルダの場合
var fileList = folderList[j].getFiles("*.mov");
for(var i=0; i<fileList.length; i++){
app.open(fileList[i]);
app.activeDocument.resizeImage(w, h); // サムネール画像のサイズ
var fileObj = new File(fileList[i].path + "/"+ fileList[i].name.split(".mov")[0]+".jpg");
var jpegOpt = new JPEGSaveOptions();
jpegOpt.embedColorProfile = true;
jpegOpt.quality = 8;
jpegOpt.formatOptions = FormatOptions.PROGRESSIVE;
jpegOpt.scans = 3;
jpegOpt.matte = MatteType.NONE;
app.activeDocument.saveAs(fileObj, jpegOpt, true, Extension.LOWERCASE);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
}
}
preferences.rulerUnits = saveUnit; // 元の単位に戻す
})();
サムネール画像のサイズはスクリプトの先頭部分にある

var w = 384; // サムネール画像の横幅
var h = 216; // サムネール画像の縦幅

の値を変更してください。値の単位はピクセルになっています。

[サンプルをダウンロード]