使用C/C++读写文件元数据

9

在网上搜寻后,没有找到使用C或C++读写文件元数据的方法,但是有可用于此的工具,并且C#和Java中也有API可以实现。但我想从头开始用C或C++实现。

例如,读写图像元数据。

发现元数据写入文件有三种格式:EXIF、IPTC和XMP。

谢谢。


你需要什么样的帮助并不清楚。 - Marcelo Cantos
2个回答

7

为什么你要从头开始做呢?

无论如何,您需要文档,并且如果您在这个领域没有经验,您可能还想查看现有库以获取帮助。

您尝试过Exiv吗?

Exiv2是一个C++库和命令行实用程序,用于管理图像元数据。它提供了快速且易于读取和写入各种格式图像的Exif、IPTC和XMP元数据的访问方式。Exiv2可作为免费软件和商业许可证使用,并用于许多项目中。


1
不想使用任何库。无论如何,感谢有关库的信息。 - Rajendra Uppal
嗨,Exif在C语言中有相应的功能吗?似乎它只有C++ API。 - Hey

4

有不同的解决方案。其中之一是定义一个结构体(但要确保字段对齐正确),然后读取数据,使用结构体访问字段。以下是一个简单的示例:

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 ...

这个话题比这个复杂得多;) 但是由于你没有更多的具体说明,我认为这仍然可以有所帮助。


感谢你提供的结构。但是你自己也意识到这并不简单! - Rajendra Uppal
创建结构很简单,难的部分你还没有完成,获取信息。 - user7075574

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