BMP图形格式分析和图象显示.ppt_第1页
BMP图形格式分析和图象显示.ppt_第2页
BMP图形格式分析和图象显示.ppt_第3页
BMP图形格式分析和图象显示.ppt_第4页
BMP图形格式分析和图象显示.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件课程设计,电子科学与技术系 软件课程设计,本次课程安排,本设计的目的、内容和基本要求 课程设计题目与设计内容简介 基本绘图函数介绍 模拟嵌入式实时操作系统简介,电子科学与技术系 软件课程设计,1. 本设计的目的、内容和基本要求,目的 本课程设计的目的是通过一个小设计实例来加深对C语言的理解和应用,在完成了本次课程设计后能够较为熟练的使用C语言编写小规模的应用程序以实现特定的功能。,电子科学与技术系 软件课程设计,1. 本设计的目的、内容和基本要求,内容 BMP图形格式分析和显示,电子科学与技术系 软件课程设计,1. 本设计的目的、内容和基本要求,基本要求 程序具有较强的可读性,关键代码必须

2、有注释; 注意代码的书写风格。,电子科学与技术系 软件课程设计,2. BMP图像显示,利用C 语言实现BMP 格式图象文件的分析和显示。主要内容包括:,完成BMP 格式图像的显示,要求在提供的画布上循环的显示某一文件夹下面所有的BMP 文件(支持所有BMP格式); 实现图像的特效显示(淡入淡出,百页窗等等)。,电子科学与技术系 软件课程设计,2. BMP图像显示,2.1 计算机中的颜色 2.2 BMP文件格式 2.3 RLE压缩算法简介,电子科学与技术系 软件课程设计,2.1 计算机中的颜色表示,计算机如何表示颜色 三基色原理(Red Green Blue),每一基色用一个字节表示; 可以在W

3、insows自带的画图软件中自己配色来了解计算机中如何表示颜色。 红色:0 xFF 0 x00 0 x00 白色:0 xFF 0 xFF 0 xFF 黑色:0 x00 0 x00 0 x00,电子科学与技术系 软件课程设计,2.1 计算机中的颜色表示,单色(21) 4位色(24) 8位色(28) 16位色(216) 24位色(224) 32位色(232),?,电子科学与技术系 软件课程设计,2.1 计算机中的颜色表示,一个2*8的图形如何表示 (1)24位 0 xff0000 0 x0000ff 0 xff0000 0 x0000ff 0 xff0000 0 x0000ff 0 xff0000

4、 0 x0000ff 0 xff0000 0 x0000ff 0 xff0000 0 x0000ff 0 xff0000 0 x0000ff 0 xff0000 0 x0000ff (2)16位(565模式) 0 xf800 0 x001f 0 xf800 0 x001f 0 xf800 0 x001f 0 xf800 0 x001f 0 xf800 0 x001f 0 xf800 0 x001f 0 xf800 0 x001f 0 xf800 0 x001f,位图数据,电子科学与技术系 软件课程设计,2.1 计算机中的颜色表示,一个2*8的图形如何表示 (3)1位 建立调色板 0:0 xff

5、0000 1:0 x0000ff 位图数据 01010101 10101010 (0 x55 0 xaa) (4)8位 建立调色板 0:0 xff0000 1:0 x0000ff . . . . 255: 0 x000000 位图数据 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00,位图数据,电子科学与技术系 软件课程设计,2.2 BMP文件格式,一般BMP文件可以看成4个部分组成: BMP文件头 BMP信息头 颜色表(调色板) (optional)

6、定义BMP位图数据,电子科学与技术系 软件课程设计,2.2 BMP文件格式,1.BMP文件头,电子科学与技术系 软件课程设计,2.BMP信息头,2.2 BMP文件格式,电子科学与技术系 软件课程设计,2.2 BMP文件格式,3.颜色表(调色板),电子科学与技术系 软件课程设计,2.2 BMP文件格式,4.位图数据,电子科学与技术系 软件课程设计,2.2 BMP文件格式,实例分析 实例1,基本属性: 宽:107 高:47 颜色深度:24位色 文件大小:15282,图象头 BM,文件大小 0 x3BB2,保留字段 0 x0000,位图数据开始偏移,图象头信息大小,位图宽度 0 x6B107,位图高

7、度 0 x2F=47,图象面数,颜色深度 0 x1824 24位色,压缩方式 无压缩,位图数据大小 0 x7C3B,位图数据区域,电子科学与技术系 软件课程设计,2.2 BMP文件格式,实例分析 实例2,基本属性: 宽:107 高:47 颜色深度:8位色 文件大小:6154,文件标识 BM,文件大小 0 x180A,保留字段 0 x0000,图象数据开始偏移,图象信息头大小,图象宽度 0 x6B107,图象高度 0 x2F47,图象面数 1,位数/象素 0 x8 8位色,压缩方式 0 无压缩,位图数据大小(字节) 0 x13D4,颜色表 (调色板)区域,位图数据 区域,电子科学与技术系 软件课

8、程设计,2.3 RLE压缩算法简介,为什么压缩?,压缩方法分类?,考虑未压缩的BMP文件,它们通常比同一幅图像的经过压缩后的文件格式要大很多。例如,一个800600的24位几乎占据1.4MB空间。因此它们通常不适合在网络或者其他应用场合。,无损压缩, 如:RLE,Huffman等等; 有损压缩,如:DCT等等,电子科学与技术系 软件课程设计,2.3 RLE压缩算法简介,行程压缩编码(Run Length Encoding) BI_RLE8 每个象素为8比特的RLE压缩编码,可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式可在同一幅图中的任何地方使用。 编码方式 绝对方式,由2个字节组成

9、,第一个字节指定使用相同颜色的象素数目,第二个字节指定使用的颜色索引。此外,这个字节对中的第一个字节可设置为0,联合使用第二个字节的值表示: 第二个字节的值为0:行的结束。 第二个字节的值为1:图象结束。 第二个字节的值为2:其后的两个字节表示下一个象素从当前开始的水平和垂直位置的偏移量。,绝对方式:第一个字节设置为0,而第二个字节设置为0 x030 xFF之间的一个值。在这种方式中,第二个字节表示跟在这个字节后面的字节数,每个字节包含单个象素的颜色索引。,示例:如下面用16进制表示的8-位压缩图象数据序列 03 04 05 06 00 03 45 56 67 00 02 78 00 02 0

10、5 01 02 78 00 00 09 1E 00 01 这些压缩数据可解释为 :,电子科学与技术系 软件课程设计,行程压缩编码(Run Length Encoding) BI_RLE4 每个象素为4比特的RLE压缩编码,同样也可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式也可在同一幅图中的任何地方使用 。 编码方式 绝对方式,由2个字节组成,第一个字节指定象素数目,第二个字节包含两种颜色索引,一个在高4位,另一个在低4位。第一个象素使用高4位的颜色索引,第二个使用低4位的颜色索引,第3个使用高4位的颜色索引,BI_RLE4也同样联合使用第二个字节中的值表示: 第二个字节的值为0:行

11、的结束。 第二个字节的值为1:图象结束。 第二个字节的值为2:其后的两个字节表示下一个象素从当前开始的水平和垂直位置的偏移量。,这个字节对中的第一个字节设置为0,第二个字节包含有颜色索引数,其后续字节包含有颜色索引,颜色索引存放在该字节的高、低4位中,一个颜色索引对应一个象素。,2.3 RLE压缩算法简介,电子科学与技术系 软件课程设计,2.3 RLE压缩算法简介,示例:如下面用16进制表示的4-位压缩图象数据序列 03 04 05 06 00 06 45 56 67 00 04 78 00 02 05 01 04 78 00 00 09 1E 00 01 这些压缩数据可解释为 :,电子科学与

12、技术系 软件课程设计,3. 滚动字幕的实现,主要内容包括: 1. 熟悉点阵字库的存取规则; 2. 读取文件的输入信息,包括滚动方式,显示位置、尺寸以及内容等; 3.利用C语言实现在指定位置滚动显示文件中的内容。,电子科学与技术系 软件课程设计,3. 滚动字幕的实现,点阵字库简介 区位码 GB2312字符集构成一个94行、94列的表,行号称为区号,列号称为位号,每一个汉字用它所在的区号和位号来表示; 机内码 一个汉字字符由两个字节的机内码表示,分别称为高字节内码和低字节内码。它们和区位码的联系在于: 区码高字节内码0 xa0,位码低字节内码0 xa0。 如:汉字 “升”,机内码为 0 xc9fd

13、 区码=0 xc9-0 xa0=0 x29 位码=0 xfd-0 xa0=0 x5d,电子科学与技术系 软件课程设计,3. 滚动字幕的实现,汉字点阵字库存放方式 从第1区15区 符号 从第16区55区 一级汉字 从第56区87区 二级汉字 字模在字库中按照区位码从小到大排列 每字符占字库大小由点阵大小决定,如1616点阵的字库,每个字符占32字节 2424点阵的字库,每个字符占72字节,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,1.GFMDrawPixel(); 2.GFMDrawLine(); 3.GFMDrawRectangle(); 4.GFMDrawCircle(); 5

14、.GFMReadRectangle(); 6.GFMWriteRectangl();,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,1.GFM_DrawPixel(INT32U whichColor, INT32U x, INT32U y, INT32U pixelCount),电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,2.GFMDrawLine( INT32U startX, INT32U startY, INT32U endX, INT32U endY, INT32U Color);,GFM_DrawLine( 0,26,16,26,0 xFFFF0000);,GF

15、M_DrawLine( 12,2,2,12,0 xFFFF0000, );,(12,2),(2,12),(16,26),(0,26),电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,3.GFMDrawRectangle (INT32U x, INT32U y, INT32U width, INT32U height, INT32U color, BOOL fill);,(26,10),GFM_DrawRectangle (2,2,25,9,0 xFFFF0000,0);,GFM_DrawRectangle (2,2,25,9,0 xFFFF0000,1);,(2,2),电子科学与技术系

16、 软件课程设计,4. 基本绘图函数介绍,4.GFMDrawCircle( INT32U xCentre, INT32U yCentre, INT32U r, INT32U color, BOOL fill );,GFM_DrawCircle(20, 15,10,0 xFFFF0000,0 );,r=10,GFM_DrawCircle(20, 15,10,0 xFFFF0000,1 );,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,5.GFMReadRectangle( INT32U x, INT32U y, INT32U width, INT32U height, INT8U *d

17、est);,(x,y),width,height,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,6.GFMWriteRectangl( INT32U x, INT32U y, OSD_RECT rect, UINT8 *source, INT32U width, INT32U height);,电子科学与技术系 软件课程设计,5. 实时操作系统简介,单任务和多任务(task) 消息和消息队列(message, queue) 信号量(semaphore),电子科学与技术系 软件课程设计,5. 实时操作系统简介,任务(task) 基本函数调用 UINT32 DTOS_DRV_Create

18、Task( void (*task)(void), INT32U priority, INT32U stackSize, INT8S Name); void DTOS_DRV_DelayTask( INT16 ms);,电子科学与技术系 软件课程设计,5. 实时操作系统简介,消息和队列(message/queue) 基本函数调用 UINT32 DTOS_DRV_CreatQueue( INT32U QueueSize ); INT32S DTOS_DRV_SendMessage( INT32U queueID , T_Message *Message); INT32S DTOS_DRV_ReceiveMessage( INT32U queueID, T_Message *Message);,电子科学与技术系 软件课程设计,5. 实时操作系统简介,信号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论