【问题标题】:What is the relationship between exif and xmp? Are they interchangeable?exif和xmp有什么关系?它们可以互换吗?
【发布时间】:2014-01-27 12:02:02
【问题描述】:

我正在编写一个读取/写入图像元数据的应用程序(它将原始文件转换为 jpeg/tiff),我需要将有关相机/模式/...的元数据写入生成的 jpeg。

我知道我可以使用 exif 执行此操作,而在 Windows 中我使用 GDI 执行此操作。但我正在从 adobe 阅读有关 xmp 和 xmp sdk 的信息。

我想知道我应该使用哪一个? exif 还是 xmp?

它们之间的关系如何?

为什么有人可以选择编写 exif 元数据而其他人可以选择 XMP?选择其中任何一个的优点/缺点是什么。

我在 Windows 上用 C++ 编写(Visual Studio 2012)

【问题讨论】:

标签: c++ visual-studio metadata exif xmp


【解决方案1】:

如果您正在编写 JPEG 或 TIFF 格式,我认为您应该坚持使用 Exif。

所有 TIFF 格式的阅读器都可以解析 Exif,因为 Exif 是 TIFF 的子集(带有特殊 Exif 定义标签的子 IFD)。大多数“JPEG”读者也知道如何解析 Exif/TIFF。

现在,您当然也可以将 XMP 添加到文件中,但我建议您在纯 Exif 之外执行此操作,并且仅在您确实需要它时才这样做。

XMP 确实允许更丰富的元数据。但由于您获得的元数据来自相机 RAW 文件,我认为它们直接映射到 Exif 标签,因为 Exif 是由数码相机行业开发的,正是您所描述的用途。

所以,基本上:使用 Exif,因为它有更好的工具支持。仅在需要时添加 XMP,以获得更丰富的元数据。

【讨论】:

    【解决方案2】:

    XMP 确实将值映射到 exif 标签。
    EXIF 和 XMP 都是图像元数据的丰富来源。
    XMP 的好处是它易于阅读,并且任何支持 XMP 的应用程序(如所有 Adob​​e 产品)都可以操作这些属性。

    XMP 从图像中的本机值派生值,因此基本上 XMP 提供图像中 exif 块中的属性之间的映射,并在 ADOBE XMP SDK 文档中定义的 XMP 命名空间中协调这些值。
    使用 XMP SDK 处理元数据的好处是,在读取或写入时协调不同图像元数据格式(如 exif、IPTC 或 XMP)的责任转移到 XMP SDK。

    如果对 XMP 属性进行了任何更改,则会将其反映回图像中的 exif 块。类似地,如果任何不支持 XMP 的应用程序修改了 exif 元数据而没有修改相应的 xmp 值,则在读取操作时,XMP SDK 会将此更改协调为 XMP 值,并且在写入时,此更改将被保存回来。

    使用 XMP SDK 来操作元数据基本上更容易,因为您可以将大量特定于格式的细节留给 SDK 来处理。

    更多关于不同图像元数据来源的信息请见on the Metadata Working Group.

    完整的规范可以从here.下载

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      相关资源
      最近更新 更多