【问题标题】:Read/Write file metadata using C/C++使用 C/C++ 读取/写入文件元数据
【发布时间】:2010-05-13 07:07:10
【问题描述】:

通过网络搜索,找不到使用 C 或 C++ 读取/写入文件元数据的方法,但是,有可用的工具,并且 C# 和 Java 中的 API 可以做到这一点。但我想用 C 或 C++ 从头开始​​。

例如,读/写图像元数据。

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

谢谢。

【问题讨论】:

  • 不清楚你想要什么样的帮助。

标签: c++ c xml metadata


【解决方案1】:

为什么要从头开始?

无论如何,您需要文档,并且您可能还想查看现有库以寻求帮助,特别是如果您没有该领域的经验。

你试过Exiv吗?

Exiv2 是一个 C++ 库和一个命令 线实用程序来管理图像元数据。 它提供快速简便的阅读和 对 Exif、IPTC 和 XMP 的写入权限 各种格式的图像元数据。 Exiv2 作为免费软件提供 并具有商业许可证,并且是 在许多项目中使用。

【讨论】:

  • 不想使用任何库。无论如何,感谢您提供有关图书馆的信息。
  • 嗨,Exif 在 C 中是否有等价物?它似乎只有一个 C++ API。
【解决方案2】:

有不同的解决方案。一种是定义一个结构(但要确保字段对齐正确),然后读取数据,并使用该结构访问字段。简单的例子:

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

这个话题比这个复杂一点;)但是由于你没有指定更多,我认为这仍然可以帮助一点。

【讨论】:

  • 感谢您的结构。但你自己意识到事情没那么简单!
  • 创建简单的结构,你还没有完成的困难部分,获取信息。
猜你喜欢
  • 2015-07-26
  • 2013-03-17
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多