2017-03-07 13 views
0

現在、このPhotoshopスクリプトに追加しようとしています(このスクリプトは現在、フォルダから多数の画像ファイルを取得し、スマートオブジェクトのコンテンツを置き換えて個々のjpgを保存します)。保存先フォルダを保存するPhotoshop Javascript

#target photoshop 
 
if (app.documents.length > 0) { 
 
var myDocument = app.activeDocument; 
 
var theName= myDocument.name.match(/(.*)\.[^\.]+$/)[1]; 
 
var thePath = myDocument.path; 
 
var theLayer = myDocument.activeLayer; 
 
// jpg options; 
 
var jpgopts = new JPEGSaveOptions(); 
 
jpgopts.embedProfile = true; 
 
jpgopts.formatOptions = FormatOptions.STANDARDBASELINE; 
 
jpgopts.matte = MatteType.NONE; 
 
jpgopts.quality = 8; 
 

 
// check if layer is smart object; 
 

 
if (theLayer.kind != "LayerKind.SMARTOBJECT") {alert ("selected layer is not a smart object")} 
 
else { 
 
// select files; 
 

 
if ($.os.search(/windows/i) != -1) {var theFiles = File.openDialog ("please select files", "*.psd;*.tif;*.jpg", true)} 
 
else { 
 

 
//var theFiles = File.openDialog ("please select files", getFiles, true)}; 
 

 
var theFolder = Folder.selectDialog ("select folder"); 
 
if (theFolder) { 
 
var theFiles = theFolder.getFiles(/\.(jpg|tif|eps|psd|png)$/i) 
 
} else { 
 
var theFiles = File.openDialog ("please select files", getFiles, true)}; 
 
}; 
 
if (theFiles) { 
 

 
// work through the array; 
 

 
      for (var m = 0; m < theFiles.length; m++) { 
 

 
// replace smart object; 
 

 
        theLayer = replaceContents (theFiles[m], theLayer); 
 
        var theNewName = theFiles[m].name.match(/(.*)\.[^\.]+$/)[1]; 
 

 
//save jpg; 
 

 
        myDocument.saveAs((new File(thePath+"/"+theName+"_"+theNewName+".jpg")),jpgopts,true); 
 
        } 
 
      } 
 
} 
 
}; 
 

 
////// get psds, tifs and jpgs from files ////// 
 

 
function getFiles (theFile) { 
 
    if (theFile.name.match(/\.(psd|tif|png)$/i) != null || theFile.constructor.name == "Folder") { 
 
      return true 
 
      }; 
 
    }; 
 

 
////// replace contents ////// 
 

 
function replaceContents (newFile, theSO) { 
 
app.activeDocument.activeLayer = theSO; 
 

 
// ======================================================= 
 

 
var idplacedLayerReplaceContents = stringIDToTypeID("placedLayerReplaceContents"); 
 
    var desc3 = new ActionDescriptor(); 
 
    var idnull = charIDToTypeID("null"); 
 
    desc3.putPath(idnull, new File(newFile)); 
 
    var idPgNm = charIDToTypeID("PgNm"); 
 
    desc3.putInteger(idPgNm, 1); 
 
executeAction(idplacedLayerReplaceContents, desc3, DialogModes.NO); 
 
return app.activeDocument.activeLayer 
 
};

は、私は何を探していますが、私が保存されたファイルの保存先フォルダを選択することができるようになるの対話を開くための方法を取り入れている、現在、それは内のファイルが保存されます開いているPSDと同じフォルダ。

希望はこれが理にかなっています!事前に

おかげで、

のRik

+0

さて、あなたは問題がありますか? – Amy

+0

こんにちはAmy!返信いただきありがとうございます。私の問題はJavaScriptリテラシーの欠如です:S。私は、このコードで、保存されたファイルの保存先フォルダを設定できるダイアログボックスを開くための正しいコード行を挿入するのが最善の場所であるかわかりません。 –

答えて

1

スタックオーバーフローがない脚本サービスです。しかし、あなたは、あなたは、単にそのフォルダ]ダイアログボックスのオプション

var thePath = myDocument.path; 
// manually save det destination folder 
var outputFolder = Folder.selectDialog("Choose folder to save files to"); 

とを追加する必要が勉強したいこと、あなたのファイルを保存するときにこれを設定

// myDocument.saveAs((new File(thePath+"/"+theName+"_"+theNewName+".jpg")),jpgopts,true); 
myDocument.saveAs((new File(outputFolder+"/"+theName+"_"+theNewName+".jpg")),jpgopts,true); 
関連する問題