在创建一个可以自动完成我在Photoshop上开始处理新图片时所做的所有不同任务的脚本时,我遇到了以下问题。
手动,我会 Ctrl + Alt + Shift + I ,点击我想要的模板选择“清除现有属性并替换为模板属性”选项。
我找不到准确做到这一点的方法。我设法找到的最好的东西是这样的:
app.activeDocument.info.author = "test";
app.activeDocument.info.caption = "";
app.activeDocument.info.captionWriter = "";
app.activeDocument.info.headline = "";
app.activeDocument.info.instructions = "";
app.activeDocument.info.keywords = "";
app.activeDocument.info.authorPosition = "";
app.activeDocument.info.credit = "";
app.activeDocument.info.source = "";
app.activeDocument.info.category = "";
app.activeDocument.info.supplementalCategories = "";
app.activeDocument.info.title = "";
// etc.
实际上它实际上并不像“清除现有属性并替换为模板属性”。
我没有在Photoshop脚本指南上找到任何内容,也没有在互联网上找到任何内容。任何帮助将不胜感激!
答案 0 :(得分:0)
我认为问题是Photoshop将文件元数据与其activeDocument元数据分开。您在“文件信息...”(通过Ctrl + Alt + Shift + I)中看到的内容应该代表文件系统中的文件,其中嵌入了元数据。
Photoshop脚本有几个脚本指南。我认为与你相关的是“Javascript Tools Guide”,特别是第10章“Scripting Access to XMP Metadata”。
在创建新图片时是否已经设置元数据很重要?如果没有,您可能希望使用a customized export script查看解决方案。
在导出时自定义XMP元数据,如
创建基本元数据对象:
var meta = new XMPMeta();
提供photoshop已知的namespaceURI(请参阅XMP specs)以及标记名称和值:
meta.setProperty(XMPConst.NS_XMP, "CreatorTool", app.version);
暂时保存图像(使用其他脚本):
var imgFile = new File(fileName);
saveImage(fileName);
通过添加元数据对象完成保存:
var metaFile = new XMPFile(imgFile.fsName, XMPConst.FILE_UNKNOWN, XMPConst.OPEN_FOR_UPDATE);
if (metaFile.canPutXMP(meta)) { metaFile.putXMP(meta); }
metaFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
这样做也会删除任何现有或默认的元数据。