如何清理现有属性并替换Photoshop上的元数据模板(脚本)?

时间:2017-09-27 14:57:09

标签: scripting photoshop jsx photoshop-script

在创建一个可以自动完成我在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脚本指南上找到任何内容,也没有在互联网上找到任何内容。任何帮助将不胜感激!

1 个答案:

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

这样做也会删除任何现有或默认的元数据。