- PNG文件的文件结构是什么?
PNG图像格式文件由文件署名和数据块(chunk)组成的。
2. 8字节的文件署名可以判断是不是PNG文件,该域的值如下图所示
下图是用二进制编辑器打开的PNG文件,可以看出前8个字节确实表中所展现的字节。
3. 数据块如何分类?关键数据块有哪些?分别起到什么作用?
PNG文件有两种类型的数据块,关键数据块和辅助数据块。
关键数据块中有4个标准的数据块:文件头数据块(HIDR),调色版数据块,图像数据块,图像分析数据
文件头数据块组成如下表所示:
在PNG文件对应二进制文件中查找位置的数据:
长度为:0x0D,与HIDR的13字节对应,说明此数据块确实是HIDR数据块。
表明该数据块是HIDR数据块。
图像宽度为0x2BB,即699像素
图像高度为ox312,即786像素
图像深度为8位
颜色类型为0x06,即图像为带a通道数据的真彩色图像
压缩方法,滤波器方法,隔行扫描方法:0x00
CRC:6A 07 0C 42
调色版数据PLTE:它包含有与索引彩色图像相关的彩色变换数据,它仅与索引彩色图像有关,而且要放在图像数据块之前。本例子是带有a通道数据的真彩色图像,没有调色板数据块。
图像数据块IDAT:它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。
图像结束数据IEND:它用来标记PNG文件或者数据流已经结束,并且必须要放在文件尾部。
4. 辅助数据块有哪些?请详细分析其中几个。
sRGB: 数值为1,符合sRCB的标准。
是上文所述的4个字节
数值为0
循环冗余校验码
gAM:
说明数据有4个字节
ACSII码
符合45455的数值
循环冗余校验码