PNG(PorTable Network Graphics)是一种无损压缩的位图图像格式,其存储方式遵循特定的文件结构和数据块(chunks)组织方式,以确保跨平台兼容性和数据完整性,以下是PNG存储方式的详细解析:
文件结构
PNG文件由 文件头(8字节) 、 数据块(chunks)序列 和 文件结束标记(2字节) 三部分组成,数据块采用“块头+数据+校验和”的结构,每个块头固定为4字节(类型标识+长度前缀+长度后缀+校验和),长度前缀为4字节无符号整数,表示数据块内容的字节数(不包括块头本身),后缀为4字节填充(用于对齐)。
数据块类型包括:
关键数据块详解
文件头(PNG Signature)
文件头固定为8字节:
x89PNGrnx1an
图像头信息(IHDR)
IHDR块定义图像的基本属性,固定为13字节:
调色板数据(PLTE)
仅当颜色类型为“索引色(3)”时,PLTE块包含调色板信息:
图像数据(IDAT)
IDAT块是PNG的核心,包含压缩后的图像扫描线数据,格式为:
[IHDR] + [PLTE(可选)] + [IDAT] + [IEND]
IDAT块使用
DeflATE压缩算法
(一种结合LZ77算法和霍夫曼编码的无损压缩方案),将原始图像数据(经预测编码和差分编码预处理)压缩后存储。
图像数据预处理流程 :
文件结束标记(IEND)
固定为2字节:,表示文件结束。
存储优势与特点
存储流程小编总结
PNG存储的核心流程可概括为:














发表评论