ファイルまとめ - [[PS_Script]]
目次
開いているドキュメントを一つのドキュメントにまとめる
現在ワークスペースに開いているドキュメントを、新たなひとつのドキュメントにまとめます。開いているドキュメントの最大サイズで各ドキュメントの名前がレイヤ名となる、新しいドキュメントを作成します。
- 各ドキュメントのもっとも上のレイヤだけを収集します。
- 2値ビットマップのドキュメントは、グレースケールに変換します。
- コピー済みのドキュメントはその場で閉じます。
このスクリプトは、現状使用中のスクリプトですが…あまり具合よくないので暇ができたら書き直す予定。
ソース
// Photoshopで原撮準備 /* 現在開いたファイルを対象に、すべてのファイルをひとつのファイルにまとめる。 その際、1レイヤづつ名前をつけてゆく。 名前ウィンドウは、マウスクリックで編集可能 アクションシートの前駆 レイヤ 番号 サブレイヤ [ BG ] [BOOK] [ LO ] [演出] [ A ] [-number] [作監] [ B ] [up][down] [総作監] [ C ] [ D ] [ E ] [ F ] [ G ] [PAN] [SLIDE] [T.U.] [T.B.] [SCALE] [付けPAN] [ゴンドラ] [effect] [特効] ラストにレイヤを再配置してシートを書き出し(MAPつき) AEでは、シートにしたがってレイヤごとに ON/OFF(IN/OUT or ON/blank)処理する。 */ //for PreComp with Photoshop //現在オープンされているすべてのドキュメントをソースとして控える。 var sourceDocs=new Array(); var maxHeight=0; var maxWidth=0; var maxResolution=0; for (idx=0;idx<app.documents.length;idx++) { sourceDocs[idx]=app.documents[idx]; // ソースの最大サイズを取得 新規ドキュメントを作成する。 if(maxWidth<sourceDocs[idx].width.toString().replace(/px/,"")*1) { maxWidth=sourceDocs[idx].width.toString().replace(/px/,"")*1; } if(maxHeight<sourceDocs[idx].height.toString().replace(/px/,"")*1) { maxHeight=sourceDocs[idx].height.toString().replace(/px/,"")*1; } if(maxResolution<sourceDocs[idx].resolution.toString().replace(/px/,"")*1) { maxResolution=sourceDocs[idx].resolution.toString().replace(/px/,"")*1; } }; // ソースドキュメントのカット番号を推定して名前として取得する。 var previewValue="c000"; myDocName=prompt("ドキュメントの名前を入力",previewValue); if(myDocName==null){myDocName=previewValue}; var destDoc=app.documents.add(maxWidth+" px",maxHeight+" px",maxResolution+" dpi",myDocName); var voidLayer=app.activeDocument.layers[0];//最初のレイヤを控えておく //if(maxResolution>144) //{ // destDoc.resizeImage(this.width,this.height,144); //}; for (idx=0;idx<sourceDocs.length;idx++) { //ソースドキュメントをアクティブに app.activeDocument=sourceDocs[idx]; if(app.activeDocument.pixelAspectRatio!=1) { app.activeDocument.pixelAspectRatio=1; } // ドキュメントが2値だったらグレースケールに変換 if(app.activeDocument.mode==DocumentMode.BITMAP) { app.activeDocument.changeMode(ChangeMode.GRAYSCALE); } if(false){ app.activeDocument.artLayers[0].copy();//レイヤ1をコピー }else{ app.activeDocument.selection.selectAll();//全選択 app.activeDocument.selection.copy();//コピー } // if(app.activeDocument.saved){ if(app.activeDocument.name.match(/^(.*)?..+?$/i)) { myLayerName=RegExp.$1;//拡張子を払う /* これは正確には「最初のドットよりも前の文字列の取得」なので注意 */ } // }else{ // myLayerName=""; // } //確認 // myLayerName=prompt("レイヤ名を確認",myLayerName); app.activeDocument.close(SaveOptions.DONOTSAVECHANGES); app.activeDocument=destDoc;//複写先をアクティブに app.activeDocument.selection.select([[0,0],[0,10],[10,10],[10,0]],SelectionType.REPLACE);//左上端をセレクト app.activeDocument.paste();//複写 app.activeDocument.activeLayer.name=myLayerName; // レイヤに名前を設定(もとファイルのファイル名?) }; //最初のレイヤまたは背景レイヤを捨てる voidLayer.remove(); if(false){ // ドキュメントが144dpi以外だったら144dpiにリサンプル if(app.activeDocument.resolution.toString()!="144 dpi") { app.activeDocument.resizeImage(this.width,this.height,144); } }
Powered by YukiWiki 2.1.2a / Modified by Nekomataya.