对于 TIFF 标头,其前 2 个字节定义字节顺序,并且是
0x49 0x49
对于英特尔,或0x4D 0x4D
对于摩托罗拉。
...后跟一个0x00 0x2A
或0x2A 0x00
按字节顺序。后跟(第一个)目录(通常是8
)的 4 个字节偏移量。这对于一般的 TIFF 文件和嵌入在文件中的 EXIF 都是如此。
但是,我遇到了一个 EXIF 块(在 JFIF 文件中),它的头0x49 0x01 0x00 0xF0 0x00 0xF0 0x00 0x00
没有意义,除了第一个字节。如果我假设 Intel 字节顺序,忽略42
签名和偏移量,而是强制偏移量,8
那么我就可以按预期读取数据:
- 目录后跟
0x11 0x00
元素,并且 - 具有 ident
0x00 0x01
、 type0x03 0x00
、 count0x01 0x00 0x00 0x00
和 data的第一个元素0xAE 0x12 0x00 0x00
(应该是 4782 像素的原始图片宽度)。
有没有其他人遇到过这个或类似的非法 TIFF 标头?是否有已知的程序/相机可以写入这种非标准数据?如果是:它是否记录在任何地方?