【数据压缩(二)】PNG文件格式分析

本文深入探讨PNG文件格式,包括文件结构、关键数据块如IHDR、PLTE、IDAT和IEND,以及透明度信息tRNS。PNG采用无损压缩,结合LZ77和Huffman编码实现高效数据存储。图像透明度通过tRNS块指定,允许设定调色板索引的透明度或单一透明颜色。
摘要由CSDN通过智能技术生成

PNG文件格式

(一)概述

        PNG(可移植网络图形),是一种可扩展的文件格式,用于光栅图像的无损、可移植、压缩良好的存储。PNG是一种无损压缩的位图图形格式。其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。PNG的名称来源于“可移植网络图形格式(Portable Network Graphic Format,PNG)”,也有一个非官方解释“PNG's Not GIF”。PNG使用从LZ77派生的无损数据压缩算法,由于其它压缩比高,生成文件体积小,一般应用于JAVA程序、网页或S60程序中[1]。

        PNG设计用于在线查看应用程序, 例如万维网,因此它可以通过渐进式显示选项完全流式传输。PNG 非常强大,既能提供完整的文件完整性检查,又能对常见传输错误进行简单检测。此外,PNG 还可以存储伽玛和色度数据,以改善异构平台上的颜色匹配[2]。

(二)PNG文件结构

        PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNG file signature)域和按照特定结构组织的3个以上的数据块(chunk)组成[1]。

1、文件署名域

        PNG文件前八个字节始终包含以下值:

        

        前两个字节在期望前两个字节唯一标识文件的系统上区分文件。字节二到四(与前两个有意重叠)命名格式。CR-LF 序列捕获更改这些字符的错误文件传输。 control-Z 字符在 MSDOS 下停止文件显示。 最后的换行检查 CR-LF 转换问题的逆[2]。

2、数据块

        PNG定义了两种类型的数据块,一种是称为关键数据块(critical chunk),这是必需的数据块,另一种叫做辅助数据块(ancillary chunks),这是可选的数据块[1]。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值