1. PNG文件的文件结构是什么?

PNG图像格式文件由文件署名和数据块(chunk)组成的。

      2. 8字节的文件署名可以判断是不是PNG文件,该域的值如下图所示

下图是用二进制编辑器打开的PNG文件,可以看出前8个字节确实表中所展现的字节。

3. 数据块如何分类?关键数据块有哪些?分别起到什么作用?

PNG文件有两种类型的数据块,关键数据块和辅助数据块。

关键数据块中有4个标准的数据块:文件头数据块(HIDR),调色版数据块,图像数据块,图像分析数据

文件头数据块组成如下表所示:

在PNG文件对应二进制文件中查找位置的数据:

长度为:0x0D,与HIDR的13字节对应,说明此数据块确实是HIDR数据块。

表明该数据块是HIDR数据块。

 图像宽度为0x2BB,即699像素

图像高度为ox312,即786像素

图像深度为8位

颜色类型为0x06,即图像为带a通道数据的真彩色图像

压缩方法,滤波器方法,隔行扫描方法:0x00

CRC:6A 07 0C 42

调色版数据PLTE:它包含有与索引彩色图像相关的彩色变换数据,它仅与索引彩色图像有关,而且要放在图像数据块之前。本例子是带有a通道数据的真彩色图像,没有调色板数据块。

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

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

    4.  辅助数据块有哪些?请详细分析其中几个。

sRGB: 数值为1,符合sRCB的标准。

是上文所述的4个字节

 数值为0

循环冗余校验码

gAM:

说明数据有4个字节

 ACSII码

符合45455的数值

 循环冗余校验码

数据压缩|PNG文件格式分析相关推荐

  1. [数据压缩]WAV文件格式分析及AVI数据结构分析

    目录 WAV文件格式分析 WAV概述 WAV文件格式分析 根据实例的WAV文件结构分析 AVI数据结构 音频与视频的数据放置方式 视频帧与音频帧的字节数 参考引用 WAV文件格式分析 WAV概述 Wa ...

  2. 数据压缩——WAV文件格式分析

    目录 WAV文件概述 WAV文件格式 一.案例分析 二.代码分析 1.建立结构体 2.读取数据段长度 3.结果 参考 WAV文件概述 WAV文件是在PC机上常见且最经典的多媒体音频文件,文件扩展名为W ...

  3. 【数据压缩2】PNG文件格式分析

    目录 PNG文件格式概述 文件结构 PNG数据块结构 实例分析 关键数据块分析 (1)IHDR数据块 (2)PLTE调色板数据块 (3)IDAT图像数据块 (4)IEND图像结束数据 辅助数据块分析 ...

  4. 【数据压缩】WAV文件和AVI文件格式分析

    一.WAV文件和AVI文件格式简介 WAV的英文全称是Waveform Audio File Format ,它采用 RIFF (Resource Interchange File Format)文件 ...

  5. 【数据压缩3】AVI文件格式分析及问题回答+WAV文件格式分析

    目录 AVI文件问题回答 1.AVI文件音频和视频的数据是如何放置的,交织放置还是连续放置? 2.AVI文件一个视频帧大约占据多少字节?一个音频数据块大约占用多少字节? WAV文件格式分析 文件概述 ...

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

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

  7. zt BMP 文件格式分析

    看到这文章不错,于是帖了上来.呵呵 BMP文件格式分析(zz) 前两天要做一个读取bmp文件的小程序,顺便查找了一些关于BMP格式的文章,现在post上来. 简介 BMP(Bitmap-File)图形 ...

  8. PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法

    在日常应用中,某些程序往往会被第三方程序下钩子(hook).如果被下钩子的进程是我们的进程,并且第三方钩子严重影响了我们的逻辑和流程,我们就需要把这些钩子摘掉(Unhook).本件讲述一种在32位系统 ...

  9. PE文件和COFF文件格式分析——导出表的应用——通过导出表隐性加载DLL

    通过导出表隐性加载DLL?导出表?加载DLL?还隐性?是的.如果觉得不可思议,可以先看<PE文件和COFF文件格式分析--导出表>中关于"导出地址表"的详细介绍.(转载 ...

最新文章

  1. Mac上webstorm与git仓库建立连接
  2. 2019新面貌:博客改版计划进行中!
  3. 【Android 异步操作】手写 Handler ( 总结 | Message | MessageQueue | Looper | Handler ) ★
  4. 暂无,进程那篇深度不够
  5. dz自动开起html,discuz论坛开启markdown 允许html代码嵌入js
  6. SFP光模块基本概念及使用注意事项详解
  7. SuperSocket 1.4系列文档(17) 在Windows Azure中运行SuperSocket
  8. 【Machine Learning 二】单变量线性回归,代价函数,梯度下降
  9. POJ 1166 The Clocks (爆搜 || 高斯消元)
  10. centos5.2 lamp安装指南
  11. 读写文件RandomAccessFile
  12. linux 用shell比较两个整数的大小
  13. Linux查看、处理文件方法
  14. 【vn.py】开发环境搭建
  15. 高数_第6章无穷级数__正项级数的性质_比值_比较_根值_极限审敛法
  16. 计算机二级excel必考公式,计算机二级必考Excel公式.doc
  17. mysql duplicateentry_Mysql错误:Duplicate entry 'xxx' for key 'PRIMARY'的解决方法_mysql_爱周末...
  18. (二)ubuntu下安装Amd RX470驱动
  19. 论文阅读笔记:Deep Conversational Recommender System: A New Frontier for Goal-Oriented Dialogue Systems
  20. ECCV 2022|计算机视觉中的长尾分布问题还值得做吗?

热门文章

  1. CS231n 2019 Spring
  2. hihocoder java_HihoCoder - 1110(示例代码)
  3. html怎样设置背景放射线,PPT怎么设计放射线效果背景图
  4. PHP手机号码吉凶源码,手机号码吉凶查询工具 公开源码,可任意修改
  5. api k8s restful 创建pods_k8s restful api 访问-阿里云开发者社区
  6. “低钾本身就是一个不健康的状态
  7. SWUSTOJ #287 one + two = 3
  8. 23岁男孩创业卖药枕,成功实现自己创业梦
  9. 怎么重置imac_Mac什么时候需要重置SMC Mac重置SMC方法【】
  10. calicoctl命令简介