PNG图像格式解析

一、winhex查看png-32bit(5*5)文件数据块

二、固定文件头 8字节

        89 50 4E 47 0D 0A 1A 0A 文件署名 8字节

三、IHDR块 长度说明 4字节

        00 00 00 0D 说明IHDR块长度为0D(13个字节)

四、IHDR块 标识 4字节

        49 48 44 52 IHDR标识数据块 

五、IHDR块 13个字节

        00 00 00 05 width

        00 00 00 05 height

        08 bit depth

        06 color type(带a通道的真彩色图片)

        00 PNG Spec规定此处总为0(非0值为将来使用更好的压缩方法预留),表示使压缩方法(LZ77派生算法)

扫描二维码关注公众号,回复: 14603321 查看本文章

        00 同上

        00 非隔行扫描

六、IHDR块 CRC校验 4字节

        8D 6F 26 E5

七、IDAT块长度标识块

        00 00 00 44 标识IDAT块长度

八、IDAT块标识

        49 44 41 54 对应ASCII:IDAT

九、IDAT数据块(图像数据块)

         08....57

十、IDAT数据块解析(0x44-68byte)

        png压缩分为两个阶段,预解析和压缩

        预解析采用差分编码(Delta encoding)对图片进行预处理

        压缩阶段会将预处理阶段得到的结果进行Deflate压缩,它由 Huffman 编码 和 LZ77压缩构成,变种的LZ77压缩编码DEFLATE压缩

十一、IDAT CRC32校验 4byte

        B1 4C 94 78

十二、IEND png结束标识符 12byte

        00 00 00 00 49 45 4E 44 AE 42 60 82

猜你喜欢

转载自blog.csdn.net/QQ135102692/article/details/124828571