概述

PNG是一种无损压缩的位图图形格式。其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。PNG支持索引、灰度、RGB三种颜色方案以及alpha通道等特性。PNG使用从LZ77派生的无损数据压缩算法,一般应用于JAVA程序、网页或S60程序中,原因是它压缩比高,生成文件体积小。

PNG图像特点

体积小,无损压缩,索引彩色模式,更优化的网络传输显示,支持透明效果。PNG同时还支持真彩和灰度级图像的Alpha通道透明度,最高支持24位真彩色图像以及8位灰度图像,支持图像亮度的Gamma校准信息,支持存储附加文本信息,以保留图像名称、作者、版权、创作时间、注释等信息。

文件结构

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

1、文件署名域 8字节的PNG文件署名域用来识别该文件是否为PNG文件。值为:

十进制   137 80 78 71 13 10 26 10

十六进制  89 50 4e 47 0d 1a 0a

2、数据块结构 PNG定义了两种类型的数据块,一为关键数据块,这是必需的数据块,另一种叫做辅助数据块(ancillary chunks),这是可选的数据块。

3、关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们,PNG读写软件也都必须要支持这些数据块。

几种PNG格式

PNG格式有8位、24位、32位三种形式,其中8位PNG支持两种不同的透明形式(索引透明和alpha透明),24位PNG不支持透明,32位PNG在24位基础上增加了8位透明通道,因此可展现256级透明程度。
PNG8和PNG24后面的数字则是代表这种PNG格式最多可以索引和存储的颜色值。”8″代表2的8次方也就是256色,而24则代表2的24次方大概有1600多万色。

关键数据块

·  IHDR:文件头数据块IHDR(header chunk):它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。

·  PLTE:调色板数据块PLTE(palette chunk)包含有与索引彩色图像(indexed-color image)相关的彩色变换数据,它仅与索引彩色图像有关,而且要放在图像数据块(IDAT)之前。

·  IDAT:图像数据块IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。IDAT存放着图像真正的数据信息。

·  IEND:图像结束数据IEND(image trailer chunk):它用来标记PNG文件或者数据流已经结束,并且必须要放在文件的尾部。由于数据块结构的定义,IEND数据块的长度总是0(00 00 00 00,除非人为加入信息),数据标识总是IEND(49 45 4E 44),因此,CRC码也总是AE 42 60 82。

以 以下PNG图片为例分析

使用visual studio,二进制编辑器打开文件

图像数据块IDAT

其头部信息与PNG头部信息一致,因此为PNG图像。

00 00 00 0D 即数据块长度,表示此数据块长度为13个字节;

49 48 44 52 即IHDR标识,IHDR在十六进制中中的对应值;

紫色部分为数据部分:

00 00 02 D0 表示图像宽为720像素;

00 00 02 40 表示图像高为576像素;

08:图像深度8bit;

02:真彩色图像;

00:压缩方法;

00:滤波器方法;

00:非隔行扫描;

2B 53 C6是CRC数据校验码。

图像结束数据IEND

 00 00 00 00 表示数据部分长度为0,也就是该数据块没有数据;

49 45 4E 44 为IEND标识;

AE 42 60 82 为CRC校验码;文件结束。

参考:

PNG、JPEG、BMP等几种图片格式详解(一)—— PNG - 简书 (jianshu.com)

数据压缩作业二:PNG图像格式分析相关推荐

  1. 数据压缩作业:png图像格式分析

    以具体图片为例,借助VS2019分析png图像格式. 一.PNG格式 PNG,图像文件存储格式,其目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性.PNG用来存储灰度图 ...

  2. 数据压缩作业二——分析tga文件

    数据压缩作业二--分析tga文件 文章目录 数据压缩作业二--分析tga文件 一.TGA格式文件概述 二.使用二进制编辑软件分析tga文件 1.TGA文件头(TGA FILE HEADER) 2. 图 ...

  3. 数据压缩作业二 TGA格式文件分析

    1 TGA格式简介 TGA(Targa)格式是计算机上应用最广泛的图象格式.在兼顾了BMP的图象质量的同时又兼顾了JPEG的体积优势.并且还有自身的特点:通道效果.方向性.在CG领域常作为影视动画的序 ...

  4. [数据压缩作业1]利用Audacity分析浊音、清音、爆破音|RGB文件三通道分量的熵计算

    一. 利用Audacity分析浊音.清音.爆破音 1. 音频分析工具 本次实验使用软件Audacity 2. 分析时域波形和频谱 (1)浊音 以a为例 时域波形 频谱 结论:浊音时域具有周期性.在频域 ...

  5. 个人作业二-软件案例分析

    个人作业-软件案例分析-音乐软件 项目 内容 这个作业属于哪个课程 2023年春季软件工程(罗杰 任健) 这个作业的要求在哪里 个人作业-软件案例分析 我在这个课程的目标是 学习软件工程方法,提升解决 ...

  6. 数据压缩作业2.1 多媒体文件分析——TGA文件

    一.TGA文件概述 TGA是由美国Truevision公司为其显示卡开发的一种图像文件格式,结构比较简单,属于一种图形.图像数据的通用格式,在多媒体领域有很大影响,是计算机生成图像向电视转换的一种首选 ...

  7. 数据压缩作业1-1|利用Audacity分析浊音、清音、爆破音的时域及频域特性

    文章目录 实验任务 实验目的 实验步骤 实验过程 实验结果分析 实验总结 实验任务 使用Audacity分析浊音.清音爆破音的时域及频域特性 实验目的 能够基本掌握Audacity这款音频处理软件的基 ...

  8. 嵌入式Linux作业二分析u-boot-1.1.6在smdk2410开发板上的启动代码

    嵌入式Linux实验 嵌入式Linux作业二 文章目录 嵌入式Linux实验 作业要求 一.作业分析 二.实验步骤 1.下载并解压uboot1.1.6源码 2. 分析该版本下开发板smdk2410的相 ...

  9. 16福师计算机应用基础在线作业,16春季福师《计算机应用基础》在线作业二分析.doc...

    福师<计算机应用基础>在线作业二 一.单选题(共 40 道试题,共 80 分.) 1. ( )都是系统软件. . OS 和MIS . WPS和UNIX . UNIX和Wor . OS和UN ...

最新文章

  1. 安装linux系统结果,Linux 系统安装[Redhat]
  2. UA MATH563 概率论的数学基础 鞅论初步7 停时与Upcrossing不等式
  3. 如今全球超级计算机运算速度排名,截至2019年(或2018年),全球超级计算机运算速度排名第一的是?...
  4. 0730 - 搞定 iPaste for iOS 技术选型
  5. 伪分布式hbase数据迁移汇总
  6. jzoj4616-[NOI2016模拟7.12]二进制的世界【平衡规划,dp】
  7. 2020蓝桥杯省赛---java---A---7(回文日期)
  8. perl6 HTTP::UserAgent (2)
  9. Lock(ReentrantLock)实现线程同步,线程安全
  10. 键盘上所有键位的ascii值
  11. 文件源此计算机上的硬盘驱动器是什么意思,Win10传输到外部硬盘驱动器的解决方法...
  12. android 自定义心电图,Android动态滚动波形图(心电图)的实现
  13. python实现抢票github_面向回家编程!GitHub标星两万的”Python抢票教程”,我们先帮你跑了一遍...
  14. 【思维】如何放下心中的执念?
  15. hibernate HQL 使用from (select ……)子查询的方法
  16. PM必读|如何成为卓有成效的产品经理
  17. mysql设置远程访问。
  18. Mysq大小比较EQ、NE、GE、GT、LE、LT
  19. vivoy53s和vivos9e的区别 哪个更值得入手
  20. Oracle安装的一些问题收集[转]

热门文章

  1. 罗马java_关于java:罗马数字转十进制的三种方法
  2. JSFL_图片转换SWF导出
  3. 如何拥有一部属于自己的公网云服务器
  4. 连锁零售行业IT运维管理四大困境
  5. 关于python语法
  6. 还在埋头苦干?会构建个人品牌的人已在弯道超车
  7. 36氪WISE2020新经济之王大会圆满落幕 超170位嘉宾纵论新经济
  8. 我的世界服务器掉落率修改,[管理|综合]Scavenger —— 拾荒者,死亡不掉落[1.2.3-1.7.4]...
  9. PAT 乙级 1075
  10. PHP生成海报 文字描边,海报字体 怎么为海报字体添加描边样式?海报文字描边怎么做?海报字体描边样式制作...