PNG,图像文件存储格式,其目的是试图(原来此处使用了"企图")替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。流式网络图形格360问答式(PortableNetworkGraphicFormat,PNG)名称来源于非官方的“PNG'sNotGIF”,是一种位图文件(bitmapfile)存储格式,读成“ping”。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还毕橡陪可存储多到16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法。一般应用于JAVA程序中,或网页或S60程序中接广算械青价是因为它压缩比高,生成文件容量小。
PNG文件格式保留GIF文件格式的下列特性:
使用彩色查找表或者叫做调色板可支持256种颜色衡体难坏怀员变造晚初算的彩色图像。
流式读/写性能(streamability)
图像文件格式允许连续读出和写入图像数据,这个特性很适合于在通信过程中生成和显示图像。
逐次逼近显示(progressivedisplay)
这种特乎落己得识决何性可使在通信链路上传输图像文件的同时就在终端上显示图像,把整个轮廓显示收括蛋职不出来之后逐步显示图像的细节,也就是先用低分如扮辨交率显示图像,然后逐步提高它的分辨率。
透明性(transparency)
这个性能可使图像中某些部分不显示出来,用来创建一些有特色的图像。
辅助信息(ancillaryinformation)
这个特性可用来在图像文件集特水绝装证于伤据低中存储一些文本注释信息。
独立于计算机软硬件环境。
使用无损压缩。
PNG文件格式中要增加下列GIF文件格式所没有的特性:
每个像素为48位的真彩色图像。
每个像素为16位的灰度图像。
可为灰度图和真彩色图添加α通道。
添加图像的γ信息。
使用循环冗余码(cycl队致同燃担讨聚毛icredundancycode,CRC)检测损害严石端煤宣论而手蠢的文件。
加快图像显示的逐次逼近显示方式。
标准的读/写工具包。
可在一个文件中存储多幅图像。
编辑本段
PNG文件的使用:
PNG格式图片因其高保真性、透明性及文件大小较小等特性,被广泛应用于网页设计、平面设计中。网络通讯中因受带宽制约,在保证图片清晰、逼真的胞茶差冷右哪硫尼助前提下,网页中不可能大范围的使用文件较大的bmp、jpg格式文件,gif格零田管数云给各式文件虽然文件较小委种宗还冲题为厚端路,但其颜色失色严重,差强人意,所以PNG格式文件自诞生之日起就大行冷革流规吃征识其道。
PNG格式图片通常被我们当做素材来使用,在设计过程中,不可避免的要搜索相关文件,如果是JPG格式文件,抠图就在所难免,费时费力,gi微妒规队f格式虽然具有透明性,但其只是对其中一种或几种颜色设置为完全透明,并没有考虑对周围颜色的影响,所以此时PNG格式文件就成了我们的不二之选。我们经常在网页中看到整个页面使用同一个PNG图片做背景,按钮、导航条际压格半实介拿拿等全做在一张图片上,其实就是这个道理,究其缘击养秋太细互快液阶由无非就是PNG图片在下载过程中占带宽较小,而且颜色逼真,下景角坚以站均谓异某载一次可重复使用。
编辑本段
文件结构
PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNGfilesignature)域和按照特定结构组织的3个以上的数据块(chunk)组成。
PNG定义了两种类型的数据块,一种是称为关键数据块(criticalchunk),这是标准的数据块,另一种叫做辅助数据块(ancillarychunks),这是可选的数据块。关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们,PNG读写软件也都必须要支持这些数据块。虽然PNG文件规范没有要求PNG编译码器对可选数据块进行编码和译码,但规范提倡支持可选数据块。
(1)PNG文件署名域
8字节的PNG文件署名域用来识别该文件是不是PNG文件。该域的值是:
十进制数13780787113102610
十六进制数89504e470d0a1a0a
(2)数据块的结构
每个数据块都由表6-07所示的的4个域组成。
表6-07PNG文件数据块的结构
名称字节数说明
Length(长度)4字节指定数据块中数据域的长度,其长度不超过
(231-1)字节
ChunkTypeCode(数据块类型码)4字节数据块类型码由ASCII字母(A-Z和a-z)组成
ChunkData(数据块数据)可变长度存储按照ChunkTypeCode指定的数据
CRC(循环冗余检测)4字节存储用来检测是否有错误的循环冗余码
在表6-07中,CRC(cyclicredundancycheck)域中的值是对ChunkTypeCode域和ChunkData域中的数据进行计算得到的。CRC具体算法定义在ISO3309和ITU-TV.42中,其值按下面的CRC码生成多项式进行计算:
x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
编辑本段
数据块结构
1.关键数据块
关键数据块中的4个标准数据块是:
(1)文件头数据块IHDR(headerchunk):它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。
文件头数据块由13字节组成,它的格式如表6-08所示。
表6-08PNG文件头键数据块的结构
域的名称字节数说明
Width4bytes图像宽度,以像素为单位
Height4bytes图像高度,以像素为单位
Bitdepth1byte图像深度:
索引彩色图像:1,2,4或8
灰度图像:1,2,4,8或16
真彩色图像:8或16
ColorType1byte颜色类型:
0:灰度图像,1,2,4,8或16
2:真彩色图像,8或16
3:索引彩色图像,1,2,4或84:带α通道数据的灰度图像,8或16
6:带α通道数据的真彩色图像,8或16
Compressionmethod1byte压缩方法(LZ77派生算法)
Filtermethod1byte滤波器方法
Interlacemethod1byte隔行扫描方法:0:非隔行扫描
1:Adam7(由AdamM.Costello开发的7
遍隔行扫描方法)
(2)调色板数据块PLTE(palettechunk):它包含有与索引彩色图像((indexed-colorimage))相关的彩色变换数据,它仅与索引彩色图像有关,而且要放在图像数据块(imagedatachunk)之前。真彩色的PNG数据流也可以有调色板数据块,目的是便于非真彩色显示程序用它来量化图像数据,从而显示该图像。调色板数据块结构如表6-09所示。
表6-09调色板数据块结构
域的名称字节数说明
Red1byte0=黑,255=红
Green">0=黑,255=绿
Blue1byte0=黑,255=蓝
调色板实际是一个彩色索引查找表,它的表项数目可以是1~256中的一个数,每个表项有3字节,因此调色板数据块所包含的最大字节数为768。
(3)图像数据块IDAT(imagedatachunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。
(4)图像结束数据IEND(imagetrailerchunk):它用来标记PNG文件或者数据流已经结束,并且必须要放在文件的尾部。
除了表示数据块开始的IHDR必须放在最前面,表示PNG文件结束的IEND数据块放在最后面之外,其他数据块的存放顺序没有限制。
2.辅助数据块
PNG文件格式规范制定的10个辅助数据块是:
(1)背景颜色数据块bKGD(backgroundcolor)。
(2)基色和白色度数据块cHRM(primarychromaticitiesandwhitepoint)。所谓白色度是指当R=G=B=最大值时在显示器上产生的白色度。
(3)图像γ数据块gAMA(imagegamma)。
(4)图像直方图数据块hIST(imagehistogram)。
(5)物理像素尺寸数据块pHYs(physicalpixeldimensions)。
(6)样本有效位数据块sBIT(significantbits)。
(7)文本信息数据块tEXt(textualdata)。
(8)图像最后修改时间数据块tIME(imagelast-modificationtime)。
(9)图像透明数据块tRNS(transparency)。
(10)压缩文本数据块zTXt(compressedtextualdata)。
3.数据块摘要
关键数据块、辅助数据块和专用公共数据块(special-purposepublicchunks)综合在表6-10中。
表6-10PNG文件格式中的数据块
数据块符号数据块名称多数据块可选否位置限制
IHDR文件头数据块否否第一块
cHRM基色和白色点数据块否是在PLTE和IDAT之前
gAMA图像γ数据块否是在PLTE和IDAT之前
sBIT样本有效位数据块否是在PLTE和IDAT之前
PLTE调色板数据块否是在IDAT之前
bKGD背景颜色数据块否是在PLTE之后IDAT之前
hIST图像直方图数据块否是在PLTE之后IDAT之前
tRNS图像透明数据块否是在PLTE之后IDAT之前
oFFs(专用公共数据块)否是在IDAT之前
pHYs物理像素尺寸数据块否是在IDAT之前
sCAL(专用公共数据块)否是在IDAT之前
IDAT图像数据块是否与其他IDAT连续
tIME图像最后修改时间数据块否是无限制
tEXt文本信息数据块是是无限制
zTXt压缩文本数据块是是无限制
fRAc(专用公共数据块)是是无限制
gIFg(专用公共数据块)是是无限制
gIFt(专用公共数据块)是是无限制
gIFx(专用公共数据块)是是无限制
IEND图像结束数据否否最后一个数据块
编辑本段
tEXt和zTXt数据块中的标准关键字:
Title
图像名称或者标题
Author
图像作者名
Description
图像说明
Copyright
版权声明
CreationTime
原图创作时间
Software
创作图像使用的软件
Disclaimer
弃权
Warning
图像内容警告
Source
创作图像使用的设备
Comment
各种注释
-----------------------------------------------------------------------------------------
PNG=PapuaNewGuinea巴布亚新几内亚(大洋洲一岛国)