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

标签 javascript filenames photoshop-script

我使用 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);

现在,如果您想生成并保存多个文件,只需使用 java 将两个片段组合在 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);
    } 

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

关于javascript - Photoshop 脚本中将多个 PNG 放在模型上的文件名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58953526/

相关文章:

javascript - 删除 Javascript DOM 中的子项,控制台结果与页内结果不同

sorting - 文件名唯一部分的Powershell列表

javascript - 自动将目标文件夹中的所有脚本包含在运行脚本中 - CS6

python - 从 Python 中将文件名传递给子进程

javascript - 带参数的函数用于反转循环

image-processing - 在文件夹 Photoshop 脚本中合并文件(并排)

javascript - 表格发送不再起作用

javascript - 按日期对 JSON 对象数组进行排序

javascript - tensorflow : Uncaught (in promise) TypeError: Cannot read property 'length' of undefined

PHP 文件上传 - 处理阿拉伯文/中文/日文文件名