前言
PNG是什么?
PNG文件结构是什么样子?
从哪里能判断这是一个PNG文件呢(即特征)?
PNG概述
流式网络图形格式(Portable Network Graphic Format,PNG)设计目的是替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。PNG是一种位图文件(bitmap file)存储格式,读作“ping”。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。
PNG文件结构
PNG文件头位置总是由固定的字节来描述,第一个字节会超出ASCII字符的范围,用于避免被当作文本文件处理。文件中剩余部分由数据块(Chunk)依次组成。
PNG文件标志(FILEHEAD) | 数据块(Chunk) | …… | 数据块(Chunk) |
PNG数据块
PNG为数据块定义了两种类型:
- 关键数据块(critical chunk)
- 辅助数据块(ancillary chunk)
关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们,PNG读写软件也都必须要支持这些数据块。
数据块结构
每个chunk的结构大致相同。