本篇简单梳理一下关于png格式图片的那些事。

一、简介

PNG图片是由很多个数据块组成的,每一个数据块代表不同的有关于图片的信息。除png头以外,每一个数据块都是按照数据长度+数据标识符+CRC校验码的结构来组织。如下图:

二、主要的PNG数据块

  1. PNG图片的头信息用8个字节来唯一标识图像的类型。

“89 50 4E 47 00 DA 1A 0A” 为png文件的标识符

2 在头标识之后,紧跟着的是叫做IHDR的数据段,包含了图像的高度,宽度,位深等相关信息。

3 IDAT是PNG中主要的压缩数据信息,其大概结构如图:

4 在文件结束的时候,有文件结束的标志,同样按照数据段的组织格式组织,不过数据长度为0 。

三、主要数据块的位置要求

不同的数据块,在PNG文件存储组织的时候有一定的位置和要求的限制,看下图就了然了。

结语

当然,PNG还有其他的一些数据段,不过万变不离其踪,其组织方式依然是类似的,只是不同操作系统、工具或者平台产生的PNG图片的组织格式可能不完全一样。只要抓住了最关键的IHDR, IDAT以及文件的开头和结束标识符,其他依此类推。