PNG图像文件格式解析 | 您所在的位置:网站首页 › 1129396415_16774623488991n.png › PNG图像文件格式解析 |
一、实验要求
使用 FlexHEX 对 png 图片文件进行格式解析并分析 使用图片: 8字节的PNG文件署名域用来识别该文件是不是PNG文件。 一个PNG文件其文件头总是由位固定的字节来描述的。 该域的值是: 十进制数十六进制数137898050784e7147130d100a261a100a可以看到前八个字节的确如上表所示,表明此图片确实为 PNG 格式 1) 关键数据块 关键数据块中的4个标准数据块是: 文件头数据块IHDR(header chunk):它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。文件头数据块由13字节组成,它的格式如图所示。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 调色板数据块结构如图所示: 本例是带α通道数据的真彩色图像,没有调色板数据块 图像数据块IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。图像结束数据IEND(image trailer chunk):它用来标记PNG文件或者数据流已经结束,并且必须要放在文件的尾部。00 00 00 00 49 45 4E 44 AE 42 60 82 分析可以看到的确一致![]() 2)辅助数据块 PNG文件格式规范制定的10个辅助数据块是: (1) 背景颜色数据块bKGD(background color)。 (2) 基色和白色度数据块cHRM(primary chromaticities and white point)。所谓白色度是指当R=G=B=最大值时在显示器上产生的白色度。 (3) 图像γ数据块gAMA(image gamma)。 (4) 图像直方图数据块hIST(image histogram)。 (5) 物理像素尺寸数据块pHYs(physical pixel dimensions)。 (6) 样本有效位数据块sBIT(significant bits)。 (7) 文本信息数据块tEXt(textual data)。 (8) 图像最后修改时间数据块tIME (image last-modification time)。 (9) 图像透明数据块tRNS (transparency)。 (10) 压缩文本数据块zTXt (compressed textual data)。PNG文件格式中的数据块: 此处更换了第二张图片进行实验 可以看到数值为1,是sRGB形式 4) Gama 和 cHEM 数据块 通常在sRGB 的后面同时写入gAMA数据块(有时候也会有cHRM数据块),为了使得一些不能正确解码sRGB数据块的PNG解码器正确解码。跟在sRGB数据块后面的gAMA数据块和cHRM的正确写法应该如下表所示: GamaGama45455cHRMWhite point x31270White point y32900Red x64000Red y33000Green x30000Green y60000Blue x15000Blue y6000实验二进制如下: 名称长度图片说明Length4字节![]() ![]() ![]() ![]() 5) pHYs 数据块 此数据块可表示物理分辨率 pHYs块的Chunk data由三部分构成: 名称字节数说明Pixeis per unit,X axis4-----Pixeis per unit,Y axis4-----Unit specifier10: 单位未知1:单位为米打开二进制文件 名称长度图片说明Length4字节![]() ![]() ![]() ![]() ![]() ![]() |
CopyRight 2018-2019 实验室设备网 版权所有 |