jpeg - JPEG图像的第二和第三字节是否始终是APP0或APP1标记?

标签 jpeg exif file-format

我已经测试了一些不同的JPEG图像。据我所知,第0个字节和第一个字节始终是0xFF0xD8

第二和第三通常是表示JFIF段或JFIF扩展段的0xFF0xE0(APP0)或表示EXIF段的0xFF0xE1(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/

相关文章:

swift - 我们可以将SceenKit场景保存为Autocad文件格式(.DXW或.DFX)

PHP imagecreatefromjpeg 同时保持方向

objective-c - iOS从nsdata压缩图片

date - 使用文件名将 exif 日期添加到 jpeg

iphone - UIImagePickerController 图像方向

c# - 对标记为 ASCII 的 EXIF 属性使用 UTF8 解码是否安全?

file-format - Windows Vista 通用二进制数据查看器

c++ - 获取图片的压缩比

python - 在Python Pillow中设置图像分辨率

objective-c - 为什么我编译的(小的)objective-C 文件的一半是一大块零?