3D映像編 リアル3D映像からサムネール画像を作成する

今回はTM750+3Dコンバージョンレンズ(長いので以下TM750で省略)で撮影した3D映像からサムネールを作成するスクリプトです。
TM750で撮影した3D映像はサイドバイサイド(Side By Side)方式になっているため、左目用の映像と右目用の映像が1枚の映像の中に収まっています。
映像はフルハイビジョンサイズ(1980×1080ピクセル)で、このサイズ内に以下の座標で左目用と右目用の映像が記録されます。

・左目用
(66,51)-(893,1030)

・右目用
(1026,51)-(1853,1030)
*どちらも横幅は828ピクセル、縦幅は980ピクセル

以下のスクリプトはフォルダ内にある複数の3D映像(拡張子はmov)から左目の部分を切り取りJPEG画像として保存するスクリプトです。サブフォルダは走査しないため指定したフォルダと同じ階層にある映像だけが対象になります。


(function (){
var folderObj = Folder.selectDialog("SideBySide映像があるフォルダを選択してください");
if (!folderObj) return; // キャンセルされたら何もしない
var fileList = folderObj.getFiles("*.mov");
for (i=0; i<fileList.length; i++){
var srcFile = new File(fileList[i]); // 開く映像ファイルを読み出す
app.open(srcFile);
app.activeDocument.crop([66,51,893,1030]); // 左目用部分を切り抜き
// app.activeDocument.crop([1026,51,1853,1030]); // 右目用部分を切り抜き
app.activeDocument.resizeImage(384,454); // サムネールサイズにリサイズ
var savename = srcFile.name.split(".mov")[0];
var fileObj = new File(folderObj+"/"+savename+".jpg");
jpegOpt = new JPEGSaveOptions();
jpegOpt.embedColorProfile = true;
jpegOpt.quality = 8;
jpegOpt.formatOptions = FormatOptions.PROGRESSIVE;
jpegOpt.scans = 3;
jpegOpt.matte = MatteType.NONE;
activeDocument.saveAs(fileObj, jpegOpt, true, Extension.LOWERCASE);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
})();
サムネールサイズは以下の行の数値(横幅,縦幅)を変更してください。サイドバイサイドの映像は横方向のサイズが1/2になっているのでうまく調整する必要があります。今回のスクリプトでは比率は調整していませんので縦長のサムネール画像になります。

app.activeDocument.resizeImage(384,454);

左目でなく右目の映像を切り抜きたい場合は

app.activeDocument.crop([66,51,893,1030]); // 左目用部分を切り抜き
// app.activeDocument.crop([1026,51,1853,1030]); // 右目用部分を切り抜き

を以下のように変更してください。

//app.activeDocument.crop([66,51,893,1030]); // 左目用部分を切り抜き
app.activeDocument.crop([1026,51,1853,1030]); // 右目用部分を切り抜き


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