这一课将介绍对格式化文件读写处理的常用算法,其实也算不上是算法,基本上是对有固定格式的二进制文件的常用处理方法,当然,解压缩数据的时候用到了 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 图像文件相关推荐

  1. R 语言怎么保存工作目录到当前路径_C语言探索之旅 | 第二部分第七课:文件读写...

    内容简介 前言 文件的打开和关闭 读写文件的不同方法 在文件中移动 文件的重命名和删除 第二部分第八课预告 1. 前言 上一课 C语言探索之旅 | 第二部分第六课:创建你自己的变量类型 之后,我们来学 ...

  2. c语言remove和rename不起作用,C语言探索之旅 | 第二部分第七课:文件读写

    我们学过了这么多变量的知识,已经知道变量实在是很强大的,可以帮助我们实现很多事情. 变量固然强大,还是有缺陷的,最大的缺陷就是: 不能永久保存 . 因为 C语言的变量储存在内存中,在你的程序退出时就被 ...

  3. python第二十九课——文件读写(复制文件)

    自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest):#1.打开两个文件:1个关联读操作,1个关联写操作fr=open(src,'rb') ...

  4. linux c统计进程网络读写,linux网络分析、性能分析、文本格式化、文件读写操作之利器(mtr、top、jq、sponge)...

    好的工具能够让我们工作更加高效,结合工作中的情况,今天分享下linux下比较好用的几个工具. 网络分析工具 mtr mtr是网络链路检测判断问题非常好用的工具,集成了tracert和ping这两个命令 ...

  5. c语言怎样用格式化文件存储,如何用格式化的方式读写文件

    对格式会来说,C语言的格式读写文件是很有要求的,在前面我们已经讲解了如何去进行字符的输入输出,但事实真相,数据的类型是很丰富的,而且大家已经熟悉了用printf和scanf函数进行格式化的输入输出,他 ...

  6. C语言之文件读写探究(六):fscanf、fprintf(格式化读写文件)

    相关博文:C语言之文件读写探究(一):fopen.fclose(文件的打开和关闭) 相关博文:C语言之文件读写探究(二):fputc.fgetc.feof(一次读写一个字符(文本操作)) 相关博文:C ...

  7. 引发了未经处理的异常:读取访问权限冲突_从零开始学Python:23课-文件读写和异常处理

    一下子想起来,我的Python100天教程没更新了,赶紧补上~ 这期就还接着前面的讲哈.另外就是想跟伙伴们了解下,就是跟我要到Python视频教程的伙伴,你们学的怎么样了,可以给我个反馈哈! 实际开发 ...

  8. Python(10)--文件读写/模块制作与发布

    文件读写 文件操作一般步骤: 打开文件 读/写文件 保存文件 关闭文件 [在python中操作文件也是遵循这几个步骤的] 打开文件 在Python中打开文件使用open函数,可以打开一个已经存在的文件 ...

  9. 外网访问arm嵌入式linux_嵌入式Linux系统编程——文件读写访问、属性、描述符、API

    Linux 的文件模型是从 Unix 的继承而来,所以 Linux 继承了 UNIX 本身的大部分特性,然后加以扩展,本章从 UNIX 系统接口来描述 Linux 系统结构的特性. 操作系统是通过一系 ...

  10. JAVA 文件读写大全

    摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个 ...

最新文章

  1. AlertDialog的使用(二):分别创建
  2. js(javascript)与OC(Objective-C)交互
  3. 如何从 0 到 1 开发 PyFlink API 作业
  4. GARFIELD@01-19-2005
  5. python处理pdf文档_pyPdf - 用Python方便的处理PDF文档
  6. Guitar Pro教程之如何设置MIDI键盘
  7. js百度地图小车html,百度地图web开发(基于javascript)
  8. 社交网络影响力最大化——线性阈值模型(LT模型)算法实现(Python实现)
  9. Electron+Vue3+TypeScript+Vite桌面应用程序项目初始化
  10. 2017年全国大学生电子设计竞赛 单相用电器分析监测装置(K题)
  11. OpenGL 视椎体剔除算法
  12. 提取pdf目录的方法
  13. 霜降配1种水果, 冬天不会流鼻涕, 嘴唇不会裂, 还能解酒、预防大脖子病
  14. 西电数据挖掘实验3——复杂网络社团检测
  15. 学习感悟-如何养成良好的编程习惯
  16. 利用LORA无线信号接入数据的手持PDA装置
  17. html之div整体缩小,如何整体放大或缩小div元素
  18. 基于junit4的关于个人所得税计算的等价类与边界值_关于量子力学的基本原理
  19. 重装系统如何保留正版Win10和Office
  20. 虚拟机(VMware)安装Linux(Ubuntu)安装教程

热门文章

  1. 守护神 Supervisor
  2. 启用共享文件夹服务器,Windows Server 2008 启用公共文件夹共享
  3. word分节符,分页符的区别,链接到上一页
  4. macOS Monterey 12.0.1 (21A559) 正式版发布,ISO、IPSW、PKG 下载
  5. 为什么我的电脑只能上qq不能打开网页
  6. Hard samples mining
  7. 年薪90万的阿里p7和副处级干部选哪个?
  8. 仿网易云音乐的YY音乐微信小程序源码
  9. win10 按用户名访问计算机,win7访问win10系统时需要输入用户名密码的两种解决方法...
  10. 程序人生之项目团队那些人与事(1)