选择在 Photoshop Scripts 中保存文件的位置

Choose where to save the file in Photoshop Scripts

我有这段photoshop脚本。

我已经有输入文件夹提示了。

如何让这个脚本提示我输入输出位置?要么

  1. 选择保存文件的位置和名称,或者
  2. 选择将脚本保存在与分析文件相同的位置?
#target photoshop

app.bringToFront()
main()

function main() {

    var inputFolder = Folder.selectDialog("Please select folder to process ")
    if (inputFolder == null) return

    var fileList = inputFolder.getFiles(
        /\.(jpg|dng|tif|psd|crw|cr2|psb|exr|nef|dcr|dc2|erf|raf|orf|tga|mrw|mos|srf|pic|pct|pxr|pdd|pef|png|x3f|rw2)$/i)

    // var outFile = new File(Folder.desktop + "/" + decodeURI(inputFolder.name) + ".csv")

    outFile.open('w')
    outFile.writeln(
        "Filename,Mean Bleu,Mean Marron, Mean Jaune, Mean Noir, Mean Rose, Mean Relief\r ")

    for (var a in fileList) {

        // open(fileList)
        open(fileList[a])

        // var area = activeDocument.histogram
        // var luminosity = activeDocument.histogram
        // CMYK Channel  
        /*-------------------------------------------------------------*/

        activeDocument.channels["COBALT"].visible = true
        var Bleu = activeDocument.channels["COBALT"].histogram
        var mean_Bleu = 0
        var total_Bleu = 0
        for (var n_Bleu = 0; n_Bleu < Bleu.length; n_Bleu++) {
            total_Bleu = total_Bleu + Bleu[n_Bleu]
        }
        for (var m_Bleu = 0; m_Bleu < Bleu.length; m_Bleu++) {
            var Value_Bleu = Bleu[m_Bleu]
            mean_Bleu = mean_Bleu + (m_Bleu * Value_Bleu / total_Bleu)
        }


        /*-------------------------------------------------------------*/

        // omitted code for other channels

        /*-------------------------------------------------------------*/

        //(Bleu).toFixed(0))
        outFile.writeln(decodeURI(activeDocument.name) + "," + (mean_Bleu) + ","
                + (mean_Marron) + "," + (mean_Jaune) + "," + (mean_Noir) + ","
                + (mean_Rose) + "," + (mean_Relief) + "\r")

        app.activeDocument.close(SaveOptions.DONOTSAVECHANGES)
    }

    outFile.close()

    alert("Process complete\nCSV created...\n" + decodeURI(outFile))

}

您可以将文件放在同一个文件夹中。我正在假设您正在处理大量图像并将该日期放入一个文件中。

var inputFolder = Folder.selectDialog("Please select folder to process ")

var docName = "myHistogram"; // rename your file here
var outFile = new File(inputFolder + "//" + docName + ".csv")
alert(outFile);

我认为您不能为另一种文件类型打开另存为对话框。 Photoshop 不是为保存 CSV 文件而设计的;) 这是保存图像文件的功能。然后您可以提取路径并使用它来保存 CSV 文件。

save_file_dialog(); 

function save_file_dialog()
{
   if (documents.length == 0)
{
   alert("No documents to save");
   return
}
try
   { 
      var ad = new ActionDescriptor();
      executeAction( charIDToTypeID( "save" ), ad, DialogModes.ALL );
   }
catch(e)
   {
      alert("Could not save file");
   } 
};