我希望我的照片编辑应用程序能够保留原始照片中存在的未知元数据条目(例如,非标准XMP元数据)。
我尝试使用苹果内置的元数据读/写元数据,但没有成功。
是否有一种方法可以将所有现有的元数据复制到缓冲区中,按原样写入,然后仅更改特定条目?
是的。
打开图片并读取元数据,使用以下代码:
SXMPFiles myFile;
ok = myFile.OpenFile(filename, kXMP_UnknownFile, opts);
myFile.GetXMP(_meta); // _meta 是表示您的照片的类(可能是NSDocument的子类)的数据成员。
保存图像时,将图像内容写入,然后使用SXMPFiles.PutXMP(...)将_meta
写入输出文件,并设置您喜欢的特定元数据条目。
有关阅读和写入XMP元数据的详细信息,请参见Adobe XMP编程指南。