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派生算法)

        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

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值