【发布时间】:2010-05-13 07:07:10
【问题描述】:
通过网络搜索,找不到使用 C 或 C++ 读取/写入文件元数据的方法,但是,有可用的工具,并且 C# 和 Java 中的 API 可以做到这一点。但我想用 C 或 C++ 从头开始。
例如,读/写图像元数据。
已发现将元数据写入文件的格式有三种。 EXIF、IPTC 和 XMP。
谢谢。
【问题讨论】:
-
不清楚你想要什么样的帮助。
通过网络搜索,找不到使用 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 ...
这个话题比这个复杂一点;)但是由于你没有指定更多,我认为这仍然可以帮助一点。
【讨论】: