【问题标题】:Filename issue in Photoshop script that put multiple PNGs on mockupsPhotoshop 脚本中的文件名问题,将多个 PNG 放在模型上
【发布时间】:2019-11-20 11:41:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript filenames photoshop-script


    【解决方案1】:

    获取正确文件名的示例:

        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);
    

    现在,如果您想生成并保存多个文件,只需将两个片段组合到一个 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 的最大计数,将其递增并稍后使用递增的 Count 保存新文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-15
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      • 2020-06-03
      相关资源
      最近更新 更多