在网上搜寻后,没有找到使用C或C++读写文件元数据的方法,但是有可用于此的工具,并且C#和Java中也有API可以实现。但我想从头开始用C或C++实现。
例如,读写图像元数据。
发现元数据写入文件有三种格式:EXIF、IPTC和XMP。
谢谢。
为什么你要从头开始做呢?
无论如何,您需要文档,并且如果您在这个领域没有经验,您可能还想查看现有库以获取帮助。
您尝试过Exiv吗?
Exiv2是一个C++库和命令行实用程序,用于管理图像元数据。它提供了快速且易于读取和写入各种格式图像的Exif、IPTC和XMP元数据的访问方式。Exiv2可作为免费软件和商业许可证使用,并用于许多项目中。
有不同的解决方案。其中之一是定义一个结构体(但要确保字段对齐正确),然后读取数据,使用结构体访问字段。以下是一个简单的示例:
struct header {
uint32_t len;
unsigned char type;
char name[16];
};
struct header hdr;
read(fd,&hdr,sizeof(hdr));
... access your fields using the structure ...
这个话题比这个复杂得多;) 但是由于你没有更多的具体说明,我认为这仍然可以有所帮助。