将多个 PNG 放在模型上的 Photoshop 脚本中的文件名问题

Filename issue in Photoshop script that put multiple PNGs on mockups

我正在使用 JS 和 Photoshop 在模型上放置多个 PNG 并将它们导出为 JPG。除了导出的文件名外,一切正常。它以当前日期和时间命名文件。

var filename = docPath + '/' + basename + "#" + getTime() + '.jpg';

我希望它按顺序命名文件,例如 Mockup 1、Mockup 2、Mockup 3 ... 有什么办法吗? 任何帮助将不胜感激。

获取正确文件名的示例:

    docPath = "/myProjectFolder/img";  //set the path / maindirectory you need
    basename = "myFileprimaryName"; // set the primary Name you want to use 


    //getDate ist a function of the Date object - you need to instance it to call 

    var myDate = new Date(); 
    var filename = docPath + '/' + basename + "#" + myDate.getTime() + '.jpg';

    //Following Lines will just give you an output, to check if variables 
    //are set correct - you will not need them in final code
    const data = {
       message: filename,
     }

    $('#msg').html(data.message)

注意:不确定“#”是否真的是用于设置文件名的最佳标志,由于不同文件系统的互操作性,我宁愿使用“_”代替。

要保存文件,您需要创建一个新的文件对象,为其分配文件名并通过 .saveAs() 函数保存文件,如下所示。

保存文件示例:

        var newFile = new File(filename);   

        var saveOptions = new JPEGSaveOptions();
        saveOptions.embedColorProfile = true;
        saveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
        saveOptions.matte = MatteType.NONE;
        saveOptions.quality = quality;

        document.saveAs(newFile, saveOptions, true, Extension.LOWERCASE);

现在,如果您想生成并保存多个文件,只需 jave 将两个片段合并到一个 for 循环中就非常基本了。

从一个源文件生成多个文件/文件名的示例:

    docPath = "/myProjectFolder/img"; 
    basename = "myFileprimaryName";
     var filename;

    var saveOptions = new JPEGSaveOptions();
    saveOptions.embedColorProfile = true;
    saveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
    saveOptions.matte = MatteType.NONE;
    saveOptions.quality = quality;

    var myDate = new Date(); 

    var i;
    for (i = 0; i < cars.length; i++) {

    filename = docPath + '/' + basename + +"#" + i + myDate.getTime() +'.jpg';

    var newFile = new File(filename);   
    document.saveAs(newFile, saveOptions, true, Extension.LOWERCASE);
    } 

注意:这将多次创建具有相同内容的相同文件(例如,如果您是一名教师,想要将同一文件的工作副本处理给多个学生。如果您想保存不同的文件,我宁愿执行以下操作:检查目录中现有文件的 Basename#Count 的最大计数,递增它并使用递增的计数保存以后的新文件。