我已经测试了一些不同的JPEG图像。据我所知,第0个字节和第一个字节始终是0xFF
和0xD8
。
第二和第三通常是表示JFIF段或JFIF扩展段的0xFF
和0xE0
(APP0)或表示EXIF段的0xFF
和0xE1
(APP1)。
我的问题是:总是这样吗?第二和第三字节始终是APP0还是APP1?
最佳答案
不,例如不使用这些标记或使用其他APP标记创建JPEG的几台相机。您唯一可以依靠的就是SOI序列FF D8
,甚至不是由所有摄像机产生的EOI。另请注意,存在带有嵌入JPEG的JPEG-您可以在图像中嵌套SOI/EOI。
如果您需要处理原始相机图像中的嵌入式JPEG数据,则有几种模型会生成类似JPEG的数据,这些数据只能通过jpeg规范稍稍松弛才能进行解析-尤其是与数据中转义的FF
字节有关。然后,您的相机就会产生专有数据,乍一看看起来像jpeg数据(例如,索尼的某些“加密”原始格式)
关于jpeg - JPEG图像的第二和第三字节是否始终是APP0或APP1标记?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5413022/