gpt4 book ai didi

java - exif信息是如何编码的?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:01:47 24 4
gpt4 key购买 nike

你好,

我将使用 android 从一些图像中获取 exif 信息。我知道有一些标准的 java lib 可以与设备一起使用。我相信我最终会使用一个。

但与此同时,有人可以向我解释这些信息是如何在 JPG 中编码的吗?您通常会在哪里/如何从文档中获取信息。当我用文本编辑器打开他的文档时,它都是二进制文件。

很好奇它是如何工作的以及我如何可能读取有问题的数据。

最佳答案

如果您搜索字符串“Exif”,您将找到 Exif 数据的开头——它非常复杂,我建议使用一个库——(例如,我公司的 DotImage,如果您使用的是 .NET)。

不过,这里有一个高级描述:

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 和类型以了解它们的含义以及它们的表示方式。

关于java - exif信息是如何编码的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1821515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com