清除PSD文件中多余的元数据(Metadata)

有时候从网上找到一个巨大的图片模板之后,保存出来的jpg文件也会是个几百兆的大文件……原因也很简单,因为PSD文件之间互相复制粘贴会在对应文件的XMP元数据里记录下操作数据,也就是这个图像是从哪儿来的,称作Document Ancestor信息,如果有些特别常用的素材被复制粘贴修改转手过几万次,这些数据也会原封不动的保存在PSD文件中,进而被塞到保存的JPG文件中……

如果你通过文件–文件简介…–原始数据选项卡,看到一大堆的document ancestor,那就是它们的锅了。

#2019.10.21 更新:据说CC 2019已经搞定了这个问题,直接打开PSD就可以了,所以升级才是硬道理。

当然如果你执迷不悟(或者有苦衷)非得用旧版:

解决方法在Adobe的论坛找到一个,一段JSX脚本,用文件–脚本–浏览,打开这个JSX,就自动清掉了:

function deleteDocumentAncestorsMetadata() {
whatApp = String(app.name);//String version of the app name
if(whatApp.search("Photoshop") > 0) { //Check for photoshop specifically, or this will cause errors
//Function Scrubs Document Ancestors from Files
if(!documents.length) {
alert("There are no open documents. Please open a file to run this script.")
return;
}
if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
var xmp = new XMPMeta( activeDocument.xmpMetadata.rawData);
// Begone foul Document Ancestors!
xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, "DocumentAncestors");
app.activeDocument.xmpMetadata.rawData = xmp.serialize();
}
}
//Now run the function to remove the document ancestors
deleteDocumentAncestorsMetadata();

把上面这段代码保存成.jsx文件就可以。

#2019.10.21 更新2:

在知乎看到这个脚本,答主还吐槽自己处理方法被抄袭,实在是长亭外、古道边、芳草天。明明大家都是转载同一段jsx脚本而已。

所以继续更新一下,上面这个处理方法一次只能处理一张图,而且前提是PS能打得开。

所以也有利用外部工具的批量方法:Exiftool。

Exiftool(官网)是Phil Harvey写的专门拿来获取和写入图片信息的小软件,官网直接能下载

下载后,Windows建议解压重命名成exiftool.exe,Mac直接就有个exiftool的命令可以用。

exiftool -r -overwrite_original -XMP-photoshop:DocumentAncestors= '这里是文件路径'

Windows下用批处理或者cmd,Mac自行搞定,我穷没用过,反正就是运行这一行。

-r表示包括文件路径的子文件夹,-overwrite_original表示直接覆盖原始文件,-XMP-photoshop:DocumentAncestors=是给psd文件的DocumentAncestors写个空值,也就是删除。

当然最好操作之前备份一下原始文件以防万一,虽说我用了一下效果拔群没什么副作用。

分享到: