PNG图像支持XMP元数据吗?

6
我已经花了几个小时试图理解PNG文件上的XMP元数据是如何工作的,但还无法完全理解。
如果我使用Photoshop创建一个PNG图像,保存并打开“文件信息”对话框(文件>文件信息或Ctrl + Alt + Shift + I),我可以看到一些XMP属性,例如CreateDate、CreatorTool或ModifyDate。
现在,如果我尝试使用exiv2打开文件并读取元数据,似乎找不到任何内容。
auto image = Exiv2::ImageFactory::open(imagePath);
image->readMetadata();
Exiv2::XmpData &xmpData = image->xmpData();

同样适用于exiftool -xmp:all myImage.pngexiv2 -P X myImage.png甚至GIMP(但我认为它是在内部使用exiv2)。如果使用Photoshop再次保存时不删除任何添加的元数据,则不会出现此问题。如果不清楚,打开图像并使用exiv2添加XMP元数据,保存后,在Photoshop中重新打开图像并在文件信息对话框中查看,之前添加的属性将不再存在。奇怪的是,如果您使用JPEG图像完成整个过程,则一切都按预期工作:所有属性都可以从Photoshop和exiv2中看到,如果我尝试使用exiv2添加元数据(使用相同的代码),它也会出现在Photoshop中。我错过了什么明显的东西吗? PNG有什么特别之处,不适用于JPEG?我还没有尝试使用Adobe的SDK编辑XMP数据,它是否更好?
任何帮助都将不胜感激,因为这让我开始疯狂 :/
编辑:阅读this post后,我尝试使用Adobe Bridge,它似乎没有显示与Photoshop相同的属性。如果我使用Exiv2添加XMP元数据,则它们会在Bridge中显示,但是如果我在Photoshop中修改图像,则Bridge中的元数据会再次消失。
1个回答

2

没错,我终于得到了一份Photoshop CC的副本,一切正常。CS5和CS6中可能存在的错误在CC版本中已被修复。

我认为Photoshop CS6(13.1?)的最近更新解决了这个问题。它似乎也修复了PNG图像中ICC颜色配置文件的问题:http://forums.adobe.com/thread/1183489


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接