问题标签 [apache-commons-imaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
132 浏览

java - 使用 Apache Commons Imaging 从头开始​​编写 JPEG Exif DateTimeOriginal 和 TimeZoneOffset

我有一个 JPEG 文件,我从中删除了所有元数据。将 Java 与Apache Commons Imaging结合使用我想从头开始向 JPEG 添加自定义元数据。使用ExifRewriter().updateExifMetadataLossy(…)我已设法更新以下 Exif 标签,因为它们位于 IFD0 中:

  • ImageDescription( 0x010E)
  • Artist( 0x013B)
  • Copyright( 0x8298)

我使用 IFD0 getOrCreateRootDirectory(); 如果我从头开始创建元数据, usinggetOrCreateExifDirectory()似乎不起作用:

这是可行的,但最后一块(这部分)难题是添加图像创建时间戳信息。这将是这些 Exif 标签:

  • DateTimeOriginal( 0x9003)
  • SubSecTimeOriginal( 0x9291)
  • TimeZoneOffset( 0x882a)

然而,这些 Exif 标签似乎不在其他一些 Exif 目录中。(从metadata-extractor开始,它似乎是“子 IDF”目录)。但是如何在 Apache Commons Imaging 中获取另一个 Exif SubIFD 目录,以便添加这些标签?(请记住,我是从头开始编写所有这些元数据,而不是修改元数据。)