如何编码exif信息?

lmagni 发布于 2019-11-10 exif 最后更新 2019-11-10 12:10 238 浏览

问候, 我将从一些使用android的图像获取exif信息。我知道有一些标准的java lib,可以在设备上使用。我相信我会最终使用一个。 但在此期间有人可以向我解释这些信息是如何在JPG中编码的?你在哪里/通常如何从文档中获取信息。当我打开时,他用文本编辑器记录了它的所有二进制文件。 好奇它是如何工作的以及我如何可能读取有问题的数据。

已邀请:

zamet

赞同来自:

如果您搜索字符串“Exif”,您将找到Exif数据的开头 - 它非常复杂,我建议使用库 - (例如,如果您使用.NET,我的公司的DotImage)。 这是一个高级描述: Exif本身位于AppMarker内部 - 之前的三个字节是E1(AppMarker 1),标记的数据大小是文件的字节顺序。在Exif之后的两个字节,您将看到字节顺序标记(例如,49 49表示II,这意味着英特尔,小端 - 这意味着2个字节的数字在文件中首先具有低字节)。 其余数据广泛使用偏移量,偏移量来自第一个字节序字节的位置(在上述情况下为49) 该偏移量的8个字节是2个字节的数字,即exif标签的数量。如果您处于II字节顺序,则反转字节以读取长度。 然后会有这个12字节的记录。每个人都是:

2 bytes: Tag ID
2 bytes: Tag Type
4 bytes: Length
4 bytes: data if the data is 4 bytes or less, or an offset to the data
在N 12字节记录之后,您将获得上述N条记录中使用的每个偏移指向的数据。您需要查找ID和类型以查看它们的含义以及它们的表示方式。

aet

赞同来自:

解析EXIF数据非常繁琐,但您可以找到许多库来解析它。我最喜欢Java的是, <击> http://www.java2s.com/Open-Source/Java-Document/Web-Server/Jigsaw/org/w3c/tools/jpeg/Exif.java.htm http://jigsaw.w3.org/

inisi

赞同来自:

这是Java和EXIF的优秀库之一:http://www.drewnoakes.com/code/exif/

tqui

赞同来自:

内容太长未翻译

hquae

赞同来自:

Wikipedia有一些关于EXIF数据存储在文件中的方式和位置的指示。当然,总有standard本身可供阅读。