png图像文件格式解析

PNG是一种无损压缩的位图格式,用于替代GIF和TIFF。它体积小,支持索引彩色模式、透明效果,并在网络传输中表现优秀。PNG文件由文件署名域和关键数据块(如IHDR、PLTE、IDAT和IEND)组成,其中IDAT存储实际图像数据。
摘要由CSDN通过智能技术生成

一、简介

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

二、特点

  • 体积小
  • 索引彩色模式
  • 更优化的网络传输显示
  • 支持透明效果

三、png文件结构

PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名域(PNG file signature)和按照特定结构组织的3个以上的数据块(chunk)组成。
数据块分为两种类型,一种是关键数据块,这是必须的数据块;另一种是辅助数据块,是可选的数据块。关键数据块定义了四个标准数据块,每个PNG文件必须包含它们,PNG读写软件也都必须要支持这些数据块。

1. 文件署名域

8字节的PNG文件署名域用来识别该文件是不是PNG文件。该域的值是:
十六进制数: 89 50 4e 47 0d 0a 1a 0a

2. 数据块结构

名称 字节数 说明
Length (长度) 4字节 指定数据块中数据域的长度,其长度不超过( 2 31 − 1 2^{31}-1 2311)字节
Chunk Type Code (数据块类型码) 4字节 数据块类型码由ASCII字母(A-Z和a-z)组成
Chunk Data (数据块数据) 可变长度 存储按照Chunk Type Code指定的数据
CRC (循环冗余检测) 4字节 存储用来检测是否有错误的循环冗余码
  • CRC(cyclic redundancy check)域中的值是对Chunk Type Code域和Chunk
    Data域中的数据进行计算得到的。CRC具体算法定义在ISO 3309和ITU-T V.42中,其值按下面的CRC码生成多项式进行计算:
    x 32 + x 26 + x 23 + x 22 +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值