将多个 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 的最大计数,递增它并使用递增的计数保存以后的新文件。
我正在使用 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 的最大计数,递增它并使用递增的计数保存以后的新文件。