一、JPEG 文件格式介绍
文件使用的数据存储方式有多种。最常用的格式称为 文件交换格式(
,,,,,)。而 文件大体上可以分成两个部分:标记码)+和
压缩数据。
标记码由两个字节构成,其前一个字节是固定值 *,,,后一个字节则根据不同意义有
不同数值。在每个标记码之前还可以添加数目不限的无意义的 *,, 填充,也就说连续的多
个 *,, 可以被理解为一个 *,,,并表示一个标记码的开始。而在一个完整的两字节的标
记码后,就是该标记码对应的压缩数据流,记录了关于文件的诸种信息。
常用的标记有 、6*、%7、,*、%8、%4、、。
注意, 等都是标记的名称。在文件中,标记码是以标记代码形式出现。例如 的
标记代码为 *,,% ,即在 文件中的如果出现数据 *,,% ,则表示此处为一个
标记。
本文附录列出一张完整的 定义的标记表,供读者查阅。这里仅列出几个常用标记
的标记代码、占用字节长度和表示的意义。
SOI,&,图像开始
标记代码 - 字节 固定值 *,,%
APP0,6,应用程序保留标记 *
标记代码 - 字节 固定值 *,,*
包含 个具体字段:
9①数据长度 - 字节 ①:⑨9 个字段的总长度
即不包括标记代码,但包括本字段
9②标识符 3 字节 固定值 *262!22!**,即字符串“,,*;
9③版本号 - 字节 一般是 ***-,表示 ,, 的版本号 #-
99 可能会有其他数值代表其他版本
9④< 和 = 的密度单位 字节 只有三个值可选
*:无单位;:点数'英寸;-:点数'厘
米
9⑤< 方向像素密度 - 字节 取值范围未知
9⑥= 方向像素密度 - 字节 取值范围未知QQ
9⑦缩略图水平像素数目 字节 取值范围未知
9⑧缩略图垂直像素数目 字节 取值范围未知
9⑨缩略图 4> 位图QQQQQ 长度可能是 0 的倍数 缩略图 4> 位图数据
本标记段可以包含图像的一个微缩版本,存为 -2 位的 4> 像素。如果没有微缩图
像(这种情况更常见),则字段⑦“缩略图水平像素数目”和字段⑧“缩略图垂直像素数
目”的值均为 *。
APPn,6,应用程序保留标记 ,其中 ?~3)任选+
标记代码 - 字节 固定值 *,,:*,,,
包含 - 个具体字段:
9①数据长度 - 字节 ①:②2 个字段的总长度
0