一、简介
png(Portable Network Graphics)是一种无损压缩的位图片形格式[1]。其设计目的是为了替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性,PNG使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序、网页或S60程序中,原因是它压缩比高,生成文件体积小。
二、文件结构
PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名域(PNG file signature)和按照特定结构组织的3个以上的数据块(chunk)组成。
PNG定义了两种类型的数据块,关键数据块(critical chunk)和辅助数据块(ancillary chunks)。关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们,PNG读写软件也都必须要支持这些数据块。辅助数据可选。
1.PNG文件署名域(PNG file signature)8字节
用以识别该文件是不是PNG文件。
该域的值:十六进制数 89 50 4e 47 0d 0a 1a 0a
2.数据块的结构
(1)文件头数据块IHDR(header chunk)13字节
包含有PNG文件中存储的图像数据的基本信息,作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。