第7-5课:格式化文件读写与 PCX 图像文件
这一课将介绍对格式化文件读写处理的常用算法,其实也算不上是算法,基本上是对有固定格式的二进制文件的常用处理方法,当然,解压缩数据的时候用到了 RLE(行程长度压缩)算法。我们选择的 PCX 文件是一种非常简单的图像文件格式,在 DOS 时代和早期的 Windows 时代非常流行。下面将讲解如何按照文档介绍的格式读取文件、显示图像内容,并按照文档要求的格式生成新的图像文件,当然,也会讲解大名鼎鼎的 RLE 压缩算法。
PCX 文件格式
PCX 位图文件格式,又被称为 Z-Soft 位图(区别于 Windows 的 Bitmap(BMP)位图),是早期 Windows 和 DOS 时代最流行的图片文件格式。PCX 文件格式简单,同时还使用了一种简单的压缩算法对图像数据压缩,用这种文件作为例子,既能展示文件操作的方法,又能介绍 RLE 压缩算法,一举两得。
文件头
PCX 位图文件的文件头是个固定长度的数据结构,长度是 128 字节,拥有固定的格式,用数据结构定义一下应该是这个样子:
#pragma pack(1)
typedef struct // pcx 文件头
{BYTE flag; // 标记BYTE version; // 版本号BYTE encodeing; // 编码方式BYTE bitsPrePixel; // 平面像素位数WORD xMin; // 最小 XWORD yMin; // 最小 YWORD xMax;
第7-5课:格式化文件读写与 PCX 图像文件相关推荐
- R 语言怎么保存工作目录到当前路径_C语言探索之旅 | 第二部分第七课:文件读写...
内容简介 前言 文件的打开和关闭 读写文件的不同方法 在文件中移动 文件的重命名和删除 第二部分第八课预告 1. 前言 上一课 C语言探索之旅 | 第二部分第六课:创建你自己的变量类型 之后,我们来学 ...
- c语言remove和rename不起作用,C语言探索之旅 | 第二部分第七课:文件读写
我们学过了这么多变量的知识,已经知道变量实在是很强大的,可以帮助我们实现很多事情. 变量固然强大,还是有缺陷的,最大的缺陷就是: 不能永久保存 . 因为 C语言的变量储存在内存中,在你的程序退出时就被 ...
- python第二十九课——文件读写(复制文件)
自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest):#1.打开两个文件:1个关联读操作,1个关联写操作fr=open(src,'rb') ...
- linux c统计进程网络读写,linux网络分析、性能分析、文本格式化、文件读写操作之利器(mtr、top、jq、sponge)...
好的工具能够让我们工作更加高效,结合工作中的情况,今天分享下linux下比较好用的几个工具. 网络分析工具 mtr mtr是网络链路检测判断问题非常好用的工具,集成了tracert和ping这两个命令 ...
- c语言怎样用格式化文件存储,如何用格式化的方式读写文件
对格式会来说,C语言的格式读写文件是很有要求的,在前面我们已经讲解了如何去进行字符的输入输出,但事实真相,数据的类型是很丰富的,而且大家已经熟悉了用printf和scanf函数进行格式化的输入输出,他 ...
- C语言之文件读写探究(六):fscanf、fprintf(格式化读写文件)
相关博文:C语言之文件读写探究(一):fopen.fclose(文件的打开和关闭) 相关博文:C语言之文件读写探究(二):fputc.fgetc.feof(一次读写一个字符(文本操作)) 相关博文:C ...
- 引发了未经处理的异常:读取访问权限冲突_从零开始学Python:23课-文件读写和异常处理
一下子想起来,我的Python100天教程没更新了,赶紧补上~ 这期就还接着前面的讲哈.另外就是想跟伙伴们了解下,就是跟我要到Python视频教程的伙伴,你们学的怎么样了,可以给我个反馈哈! 实际开发 ...
- Python(10)--文件读写/模块制作与发布
文件读写 文件操作一般步骤: 打开文件 读/写文件 保存文件 关闭文件 [在python中操作文件也是遵循这几个步骤的] 打开文件 在Python中打开文件使用open函数,可以打开一个已经存在的文件 ...
- 外网访问arm嵌入式linux_嵌入式Linux系统编程——文件读写访问、属性、描述符、API
Linux 的文件模型是从 Unix 的继承而来,所以 Linux 继承了 UNIX 本身的大部分特性,然后加以扩展,本章从 UNIX 系统接口来描述 Linux 系统结构的特性. 操作系统是通过一系 ...
- JAVA 文件读写大全
摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个 ...
最新文章
- AlertDialog的使用(二):分别创建
- js(javascript)与OC(Objective-C)交互
- 如何从 0 到 1 开发 PyFlink API 作业
- GARFIELD@01-19-2005
- python处理pdf文档_pyPdf - 用Python方便的处理PDF文档
- Guitar Pro教程之如何设置MIDI键盘
- js百度地图小车html,百度地图web开发(基于javascript)
- 社交网络影响力最大化——线性阈值模型(LT模型)算法实现(Python实现)
- Electron+Vue3+TypeScript+Vite桌面应用程序项目初始化
- 2017年全国大学生电子设计竞赛 单相用电器分析监测装置(K题)
- OpenGL 视椎体剔除算法
- 提取pdf目录的方法
- 霜降配1种水果, 冬天不会流鼻涕, 嘴唇不会裂, 还能解酒、预防大脖子病
- 西电数据挖掘实验3——复杂网络社团检测
- 学习感悟-如何养成良好的编程习惯
- 利用LORA无线信号接入数据的手持PDA装置
- html之div整体缩小,如何整体放大或缩小div元素
- 基于junit4的关于个人所得税计算的等价类与边界值_关于量子力学的基本原理
- 重装系统如何保留正版Win10和Office
- 虚拟机(VMware)安装Linux(Ubuntu)安装教程
热门文章
- 守护神 Supervisor
- 启用共享文件夹服务器,Windows Server 2008 启用公共文件夹共享
- word分节符,分页符的区别,链接到上一页
- macOS Monterey 12.0.1 (21A559) 正式版发布,ISO、IPSW、PKG 下载
- 为什么我的电脑只能上qq不能打开网页
- Hard samples mining
- 年薪90万的阿里p7和副处级干部选哪个?
- 仿网易云音乐的YY音乐微信小程序源码
- win10 按用户名访问计算机,win7访问win10系统时需要输入用户名密码的两种解决方法...
- 程序人生之项目团队那些人与事(1)