admin管理员组

文章数量:1535375

2024年5月20日发(作者:)

png图片详解与加密解密方法

PNG文件格式分为PNG-24和PNG-8,其最大的区别是PNG-24是用24位来保存

一个像素值,是真彩色,而PNG-8是用8位索引值来在调色盘中索引一个颜色,因为一

个索引值的最大上限为2的8次方既128,故调色盘中颜色数最多为128种,所以该文件

格式又被叫做PNG-8 128仿色。PNG-24因为其图片容量过大,而且在Nokia和Moto

等某些机型上创建图片失败和显示不正确等异常时有发生,有时还会严重拖慢显示速度,

故并不常用,CoCoMo认为这些异常和平台底层的图像解压不无关系。不过该格式最大的

优点是可以保存Alpha通道,同事也曾有过利用该图片格式实现Alpha 混合的先例,想

来随着技术的发展,手机硬件平台的提升,Alpha混合一定会被广泛的应用,到那时该格

式的最大优势才会真正发挥。


PNG-8文件是目前广泛应用的PNG图像格式,其主要有六大块组成: 
文

件标志,为固定的64个字节:0x89504e47 0x0d0a1a0a 
2.文件头数据块IHDR(header

chunk) 3.调色板数据块PLTE(palette chunk) ,tRNS块
等。。。 5.图像数据块

IDAT(image data chunk) 6.图像结束数据IEND(image trailer chunk),固定的96个字

节:0x00000000 0x49454e44 0xae426082 
这六大块按顺序排列,也就是说IDAT块

永远是在PLTE块之后,期间也会有许多其他的区块用来描述信息,例如图像的最后修改时

间是多少,图像的创建者是谁等…



数据块1-4:


除了PNG文件标志,其中四大数据块和文件尾都是由统一的数据块文件结构描述的:

Chunk Length: 4byte


Chunk Type: 4byte


Chunk Data: Chunk Length的长度


Chunk CRC: 4byte 
例如IHDR块的数据长度为13,即

Chunk Type ="IHDR"

IHDR块:


用来描述图像的基本信息,其格式为:


 图像宽: 4byte


 图像高: 4byte


 图像色深: 4byte


 颜色类型: 1byte


 压缩方法: 1byte


 滤波方法: 1byte


 Chunk Length = 13 


本文标签: 图像数据描述图片保存