WebP格式EXIF解析疑问:两种存储结构差异及规范文档咨询
关于JPEG与WebP中EXIF存储结构差异的解析与规范指引
一、两种EXIF结构差异的原因
这是因为JPEG和WebP采用了不同的EXIF嵌入逻辑,对应各自的文件格式规范:
JPEG中的EXIF结构
JPEG的EXIF嵌入在APP1扩展段,完全遵循EXIF核心规范:
// JPEG中EXIF的前16字节结构 45 78 69 66 (Exif) // APP1段的EXIF专属标识头 00 00 (空字节分隔符) 49 49 (小端字节序标识,II) 2A 00 (TIFF文件固定标识) 08 00 00 00 (第一个IFD的偏移量) 0C 00 (IFD中的条目数量)
这里的Exif\0\0是JPEG APP1段用来标记内容为EXIF的固定前缀,后面直接衔接标准TIFF格式的元数据块。
WebP中的EXIF结构
WebP采用分块式文件结构,所有元数据都封装在独立chunk中,你看到的是WebP的EXIF chunk结构:
// WebP中EXIF的前若干字节结构 45 58 49 46 (EXIF) // WebP的EXIF chunk专属标识 1E 02 00 00 (chunk数据长度,大端字节序,对应十进制798) 4D 4D (大端字节序标识,MM) 00 2A (TIFF文件固定标识) 00 00 00 10 (第一个IFD的偏移量) 45 78 69 66 4D 65 74 61 (ExifMeta) // 编辑器自定义附加标识,非规范强制内容
EXIF是WebP用来标记该chunk存储EXIF数据的固定标识;- 后续4字节是chunk的数据长度(你之前拆分的
1E 02和00 00是完整的4字节大端长度值); - 再往后是标准TIFF格式的元数据;
ExifMeta是你所用编辑器自行添加的额外内容,不属于WebP或EXIF的规范要求,不影响元数据有效性。
二、WebP EXIF解析的规范文档
- WebP官方文件格式规范:Google发布的WebP格式文档中,明确了
EXIF chunk的结构定义,包括chunk标识、长度字段和数据部分的格式要求(数据部分为完整TIFF元数据)。 - EXIF核心规范:参考JEITA CP-3451(原ISO 12233),该规范定义了TIFF格式的元数据结构,WebP的EXIF chunk只是将标准TIFF块封装在自身chunk中,核心元数据结构与JPEG中的EXIF完全一致。
内容的提问来源于stack exchange,提问作者wetler
相关产品推荐
相关产品推荐

