PNG定义了一种数据块叫关键数据块,是必需的,另一种叫做辅助数据块,是可选的。关键数据块定义了每个PNG文件读写都必须有的4个标准数据块。
每个数据块都由以下四个部分组成:
长度:
一个4字节的无符号整数,给出数据域的长度,长度限制在(2^31-1)字节。
数据块类型码:
一个4字节的块类型代码, 为了便于描述和检查PNG文件,类型代码仅限于大写和小写的ASCII字母(A - Z和a - z。
数据域:
数据块的数据域,存储按照数据块类型码指定的数据(如果有的话)。 该字段可以是长度为零。
循环冗余检测:
一个4字节的CRC(循环冗余校验)计算,包括该块类型的代码和数据块的数据字段,但是不包括长度字段。
这前八个字节说明这是一个PNG格式图片。
最后的这四位表示这个图片的IHDR长度位13字节
这十三位就是文件头
00 00 00 F0说明这个文件的宽度为240个像素
下一个00 00 00 F0说明这个文件的高度为240个像素
08 是图像深度为8bit深度
06 是颜色类型为6,带α通道数据的真彩色图像
00 是压缩方法
00 是滤波器方法
00 是非隔行扫描
空过4个字节后,这四个字节表示调色板有9个字节
再空过四个字节后,就是存储的颜色数据了,以三个字节为一组分别是RGB信息
最后,00 00 00 00 49 45 4E 44 AE 42 60 82是PNG文件的结尾