我正在解析一个Jpeg/JFIF文件,我注意到在SOI (0xFF D8)之后,我解析了以0xFFXX ( XX是十六进制数)开始的不同的“流”,直到我找到EOI (0XFFD9)。现在,不同块的结构是:
APP0 marker 2 Bytes
Length 2 Bytes现在,当我解析a块时,我会一直解析,直到达到长度字段的2个字节中写入的长度。在那之后,我想我应该立即找到另一个Marker,后面跟着下一个块的长度。根据我的解析器,这并不总是正确的,在块之间可能有数据。我找不到这些数据是什么,以及它是否与图像相关。您是否有任何提示,这可能是什么,以及如何解释这些字节?
我迷路了,如果有人能给我指明正确的方向,我会很高兴的。提前感谢
发布于 2013-01-21 21:52:26
我最近也注意到了这一点。在我的例子中,它是一个APP2块,它是不包含块长度的ICC配置文件。
事实上,据我所知,块的长度不必是前2个字节(尽管通常是这样)。
在JFIF中,数据段中的所有0xFF字节都被替换为0xFF 0x00,因此只需计算长度即可。我只是一直读,直到我找到另一个头,但是我注意到有时(同样在ICC配置文件中)有一些字节序列没有意义,比如0xFF 0x6D,所以我可能仍然遗漏了一些东西。
https://stackoverflow.com/questions/13779775
复制相似问题