// 各レイヤー毎に保存 //---------------2006.01.24 新瀬 進(http://www016.upp.so-net.ne.jp/sorakaze/ ) //2003.10.28 文字化け対策を追加 //2004.10.04 CS対応 //2006.01.24 作り直し、レイヤーセットに対応 // 初期設定=================================================================== var strtRulerUnits = preferences.rulerUnits; if(strtRulerUnits != Units.PIXELS){ preferences.rulerUnits = Units.PIXELS; } var outputFolder = 'Layers'; var folderChar = '\\'; var cnctChar = '_'; var msgError1 = '保存した画像を開いて実行してください'; var msgConfirm1 = '表示レイヤ−のみの出力にしますか?'; var msgConfirm2 = '背景レイヤ−を出力しますか?'; var msgComplete = '出力完了'; var saveOpt = new PhotoshopSaveOptions(); saveOpt.alphaChannels = false; // アルファチャンネル saveOpt.annotations = false; // 注釈 saveOpt.embedColorProfile = false; // カラープロファイル saveOpt.layers = true; // レイヤー saveOpt.spotColors = false; // スポットカラー // Functions================================================================== // NewDocumentModeを設定------------------------------------------------------ function makeDocMode(srcmode){ switch(srcmode){ case DocumentMode.BITMAP: return NewDocumentMode.GRAYSCALE; case DocumentMode.CMYK: return NewDocumentMode.CMYK; case DocumentMode.DUOTONE: return NewDocumentMode.RGB; case DocumentMode.GRAYSCALE: return NewDocumentMode.GRAYSCALE; case DocumentMode.INDEXEDCOLOR: return NewDocumentMode.RGB; case DocumentMode.LAB: return NewDocumentMode.LAB; case DocumentMode.MULTICHANNEL: return NewDocumentMode.RGB; case DocumentMode.RGB: return NewDocumentMode.RGB; default: return NewDocumentMode.RGB; } } // 領域を取得----------------------------------------------------------------- function getArea(s){ this.left = Number(s[0]); this.top = Number(s[1]); this.right = Number(s[2]); this.bottom = Number(s[3]); this.width = this.right - this.left; this.height = this.bottom - this.top; } // レイヤー数だけ繰り返し----------------------------------------------------- function splitLayers(srcLevel, newName){ var loop, c, newDoc, newFile, layerName; var layerNames = new Array(); for(loop=0; loop 1) //レイヤー名重複時の処理 layerName = layerName + '(' + layerNames[layerName] + ')'; newFile = new File( newName + layerName ); newDoc.saveAs( newFile, saveOpt, false, Extension.LOWERCASE ); newDoc.close(); } } } //============================================================================ // メイン===================================================================== if(documents.length == 0){ alert(msgError1); }else{ var layerVisibleOnly = confirm(msgConfirm1); var backgroundSave = confirm(msgConfirm2); var srcDoc = activeDocument; var basePath = srcDoc.path.fsName.toString() + folderChar + outputFolder; var baseName = srcDoc.name.toString().replace(/\.psd/i, "") + cnctChar; var newFolder = new Folder(basePath); if(!newFolder.exists) newFolder.create(); splitLayers(srcDoc, basePath + folderChar + baseName); } // 後処理===================================================================== if(strtRulerUnits != Units.PIXELS){ preferences.rulerUnits = strtRulerUnits; } alert(msgComplete);