数据压缩作业二

这篇博客详细介绍了PNG图像文件格式,包括文件头、关键数据块和辅助数据块的构成。PNG因其高压缩比和小文件体积,常用于JAVA程序和S60程序。关键数据块包括IHDR、PLTE、IDAT和IEND,其中IHDR存储图像基本信息,PLTE定义调色板,IDAT存储实际图像数据,IEND标记文件结束。
摘要由CSDN通过智能技术生成

PNG格式文件分析

PNG文件格式简介

PNG是图像文件存储格式,其目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性,因为它压缩比高、生成文件容量小,所以一般应用于JAVA程序网页或S60程序中;可以用PS软件和电脑自带画图软件导出png格式。

PNG文件头

PNG数据块

在PNG文件中,每个数据块都由四部分组成

名称字节数说明
Length(长度)4指定数据块中数据域的长度
 
Chunk Type Code(数据块类型码)4ASCII码字母组成
Chunk Data(数据块数据)可变,但应与length值相等存储按照Chunk Type Code指定的数据
CRC(循环冗余检测)4存储用来检测是否有错误的循环冗余码

PNG定义了两种类型的数据块

一:关键数据块(critical chunk),这是标准的数据块;

二:辅助数据块(ancillary chunk),这是可选的数据块. 关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们。

关键数据块:

IHDR(header chunk)包含有图像基本信息,作为第一个出现的数据块并且只出现一次
PLTE(palette chunk)调色板数据块,必须存放在图像数据块之前
IDAT(image data chunk)存储实际的图像数据。PNG数据包允许包含多个连续的图像数据块
IEND(image trailer chunk)图像结束数据,表示PNG数据流结束。

辅助数据块

1.背景颜色数据块bKGD(background color)。
2.基色和白色度数据块cHRM(primary chromaticities and white point)。
3.图像γ数据块gAMA(image gamma)。
4.图像直方图数据块hIST(image histogram)。
5.物理像素尺寸数据块pHYs(physical pixel dimensions)。
6.样本有效位数据块sBIT(significant bits)。
7.文本信息数据块tEXt(textual data)。
8.图像最后修改时间数据块tIME (image last-modification time)。
9.图像透明数据块tRNS (transparency)。
10.压缩文本数据块zTXt (compressed textual data)。

IHDR数据块

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

域名字节数说明

width

4图像宽度,以像素为单位
Height4图像高度,以像素为单位
Bit depth1图像深度:
索引彩色图像:1,2,4或8
灰度图像:1,2,4,8或16
真彩色图像:8或16
ColorType1颜色类型:
0:灰度图像, 1,2,4,8或16
2:真彩色图像,8或16
3:索引彩色图像,1,2,4或8
4:带α通道数据的灰度图像,8或16
6:带α通道数据的真彩色图像,8或16
Compression method1压缩方法(LZ77派生算法)
Filter method1滤波器方法
Interlace method1

隔行扫描方法:

0:非隔行扫描

1: Adam7(由Adam M. Costello开发的7
遍隔行扫描方法)

PLTE数据块

调色板数据块PLTE(palette chunk)包含有与索引彩色图像(indexed-color image)相关的彩色变换数据,它仅与索引彩色图像有关,而且要放在图像数据块(image data chunk)之前。
PLTE数据块是定义图像的调色板信息,PLTE可以包含1~256个调色板信息,每一个调色板信息由3个字节组成:

颜色字节数说明
red10 = 黑
255 = 红
green10 = 黑
255 = 绿
blue10 = 黑
255 = 蓝

IDAT数据块

它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。

IEND数据块

它用来标记PNG文件或者数据流已经结束,并且必须要放在文件的尾部。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值