我正在尝试编写一些代码来从 JPG 中提取 Exif 信息。
Exif 存储在 JPG 文件的 APP1 段中。根据Exif 规范,APP1 段的格式应该是这样开始的:
FF E1 // APP1 segment marker
nn nn // Length of segment
45 // 'E'
78 // 'x'
69 // 'i'
66 // 'f'
它一直持续到后面跟着orFF
以外的东西。FF
00
在十六进制编辑器中查看 JPG,我可以看到字符串FF E1
,Exif
但我无法解码长度字节。一个例子:在一个 jpg 中,我的十六进制编辑器告诉我 APP1 段的长度为 686 字节,但长度字节为F7 C8
.
我应该如何使用这些字节来得出十进制 686?
编辑:这是示例文件的第一部分:
FF D8 FF E1 F7 C8 45 78 69 66 00 00 4D 4D 00 2A 00 00 00 08
编辑:实际上,我想我可能知道这里发生了什么。APP1 段是否真的“包含”其他段?例如,如果缩略图数据被认为在 APP1 内部,那么该长度似乎更合理。任何人都可以确认/否认这一点吗?