数据压缩|PNG文件格式分析
- 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文件格式分析相关推荐
- [数据压缩]WAV文件格式分析及AVI数据结构分析
目录 WAV文件格式分析 WAV概述 WAV文件格式分析 根据实例的WAV文件结构分析 AVI数据结构 音频与视频的数据放置方式 视频帧与音频帧的字节数 参考引用 WAV文件格式分析 WAV概述 Wa ...
- 数据压缩——WAV文件格式分析
目录 WAV文件概述 WAV文件格式 一.案例分析 二.代码分析 1.建立结构体 2.读取数据段长度 3.结果 参考 WAV文件概述 WAV文件是在PC机上常见且最经典的多媒体音频文件,文件扩展名为W ...
- 【数据压缩2】PNG文件格式分析
目录 PNG文件格式概述 文件结构 PNG数据块结构 实例分析 关键数据块分析 (1)IHDR数据块 (2)PLTE调色板数据块 (3)IDAT图像数据块 (4)IEND图像结束数据 辅助数据块分析 ...
- 【数据压缩】WAV文件和AVI文件格式分析
一.WAV文件和AVI文件格式简介 WAV的英文全称是Waveform Audio File Format ,它采用 RIFF (Resource Interchange File Format)文件 ...
- 【数据压缩3】AVI文件格式分析及问题回答+WAV文件格式分析
目录 AVI文件问题回答 1.AVI文件音频和视频的数据是如何放置的,交织放置还是连续放置? 2.AVI文件一个视频帧大约占据多少字节?一个音频数据块大约占用多少字节? WAV文件格式分析 文件概述 ...
- 数据压缩作业二——分析tga文件
数据压缩作业二--分析tga文件 文章目录 数据压缩作业二--分析tga文件 一.TGA格式文件概述 二.使用二进制编辑软件分析tga文件 1.TGA文件头(TGA FILE HEADER) 2. 图 ...
- zt BMP 文件格式分析
看到这文章不错,于是帖了上来.呵呵 BMP文件格式分析(zz) 前两天要做一个读取bmp文件的小程序,顺便查找了一些关于BMP格式的文章,现在post上来. 简介 BMP(Bitmap-File)图形 ...
- PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法
在日常应用中,某些程序往往会被第三方程序下钩子(hook).如果被下钩子的进程是我们的进程,并且第三方钩子严重影响了我们的逻辑和流程,我们就需要把这些钩子摘掉(Unhook).本件讲述一种在32位系统 ...
- PE文件和COFF文件格式分析——导出表的应用——通过导出表隐性加载DLL
通过导出表隐性加载DLL?导出表?加载DLL?还隐性?是的.如果觉得不可思议,可以先看<PE文件和COFF文件格式分析--导出表>中关于"导出地址表"的详细介绍.(转载 ...
最新文章
- Mac上webstorm与git仓库建立连接
- 2019新面貌:博客改版计划进行中!
- 【Android 异步操作】手写 Handler ( 总结 | Message | MessageQueue | Looper | Handler ) ★
- 暂无,进程那篇深度不够
- dz自动开起html,discuz论坛开启markdown 允许html代码嵌入js
- SFP光模块基本概念及使用注意事项详解
- SuperSocket 1.4系列文档(17) 在Windows Azure中运行SuperSocket
- 【Machine Learning 二】单变量线性回归,代价函数,梯度下降
- POJ 1166	The Clocks (爆搜 || 高斯消元)
- centos5.2 lamp安装指南
- 读写文件RandomAccessFile
- linux 用shell比较两个整数的大小
- Linux查看、处理文件方法
- 【vn.py】开发环境搭建
- 高数_第6章无穷级数__正项级数的性质_比值_比较_根值_极限审敛法
- 计算机二级excel必考公式,计算机二级必考Excel公式.doc
- mysql duplicateentry_Mysql错误:Duplicate entry 'xxx' for key 'PRIMARY'的解决方法_mysql_爱周末...
- (二)ubuntu下安装Amd RX470驱动
- 论文阅读笔记:Deep Conversational Recommender System: A New Frontier for Goal-Oriented Dialogue Systems
- ECCV 2022|计算机视觉中的长尾分布问题还值得做吗?
热门文章
- CS231n 2019 Spring
- hihocoder java_HihoCoder - 1110(示例代码)
- html怎样设置背景放射线,PPT怎么设计放射线效果背景图
- PHP手机号码吉凶源码,手机号码吉凶查询工具 公开源码,可任意修改
- api k8s restful 创建pods_k8s restful api 访问-阿里云开发者社区
- “低钾本身就是一个不健康的状态
- SWUSTOJ #287 one + two = 3
- 23岁男孩创业卖药枕,成功实现自己创业梦
- 怎么重置imac_Mac什么时候需要重置SMC Mac重置SMC方法【】
- calicoctl命令简介