知识问答

PNG图片格式详解

seo靠我 2024-08-19 18:05:17

2-2 PNG图片格式详解

1. PNG格式文件简介

PNG(Portable Network Graphics,便携式网络图形),是一种采用无损压缩算法的位图格式。其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。一般应用于JAVA程序、网页或S60程序中,原因是它压缩比高,生成文件体积小。

2. PNG文件结构详解

PNG图像格式文件由以下结构组成:

文件头/文件署名域:一个8字节的PNG文件署名域(即文件头)

数据块:按照特定结构组织的3个以上的数据块组成

2.1 文件署名域

实际上就是PNG文件的文件头。PNG用8字节的文件署名域来识别该文件是不是PNG文件。

文件头/文件署名域:89 50 4e 47 0d 0a 1a 0a

2.2 数据块

2.2.1 数据块结构:

PNG文件中,每个数据块由4个部分组成,如下:

名称字节数说明Length (长度)4字节指定数据块中数据域的长度,其长度不超过(231-1)字节Chunk Type Code (数据块类型码)4字节数据块类型码由ASCII字母(A-Z和a-z)组成Chunk Data (数据块数据)可变长度存储按照Chunk Type Code指定的数据CRC (循环冗余检测)4字节存储用来检测是否有错误的循环冗余码2.2.2 数据块类型:

PNG定义了两种类型的数据块:一种是称为关键数据块(必需的数据块),另一种是辅助数据块(可选的数据块)。

关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们,PNG读写软件也都必须要支持这些数据块。

1. 关键数据块:

IHD:文件头数据块。它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。

PLTE:调色板数据块。对于索引图像来说,调色板信息是必须的,它包含有与索引彩色图像相关的彩色变换数据,而且要放在图像数据块IDAT之前。

IDAT:图像数据块。它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。IDAT存放着图像真正的数据信息,因此,如果能够了解IDAT的结构,我们就可以很方便的生成PNG图像。

IEND:图像结束数据。用来标记PNG文件或者数据流已经结束,必须要放在文件的尾部。

2. 辅助数据块:

比较杂,不需要全部了解透。PNG文件格式规范制定的10个辅助数据块是:

bKGD:背景颜色数据块。

cHRM:基色和白色度数据块。

gAMA:图像γ数据块。

hIST:图像直方图数据块。

pHYs:物理像素尺寸数据块。

sBIT:样本有效位数据块。

tEXt:文本信息数据块。

tIME :图像最后修改时间数据块。

tRNS:图像透明数据块。

zTXt :压缩文本数据块。

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

最新发布

网站备案号:浙ICP备17034767号-2