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

下载本文档

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

文档简介

软件课程设计,电子科学与技术系软件课程设计,本次课程安排,本设计的目的、内容和基本要求课程设计题目与设计内容简介基本绘图函数介绍模拟嵌入式实时操作系统简介,电子科学与技术系软件课程设计,1.本设计的目的、内容和基本要求,目的本课程设计的目的是通过一个小设计实例来加深对C语言的理解和应用,在完成了本次课程设计后能够较为熟练的使用C语言编写小规模的应用程序以实现特定的功能。,电子科学与技术系软件课程设计,1.本设计的目的、内容和基本要求,内容BMP图形格式分析和显示,电子科学与技术系软件课程设计,1.本设计的目的、内容和基本要求,基本要求程序具有较强的可读性,关键代码必须有注释;注意代码的书写风格。,电子科学与技术系软件课程设计,2.BMP图像显示,利用C语言实现BMP格式图象文件的分析和显示。主要内容包括:,完成BMP格式图像的显示,要求在提供的画布上循环的显示某一文件夹下面所有的BMP文件(支持所有BMP格式);实现图像的特效显示(淡入淡出,百页窗等等)。,电子科学与技术系软件课程设计,2.BMP图像显示,2.1计算机中的颜色2.2BMP文件格式2.3RLE压缩算法简介,电子科学与技术系软件课程设计,2.1计算机中的颜色表示,计算机如何表示颜色三基色原理(RedGreenBlue),每一基色用一个字节表示;可以在Winsows自带的画图软件中自己配色来了解计算机中如何表示颜色。红色:0 xFF0 x000 x00白色:0 xFF0 xFF0 xFF黑色:0 x000 x000 x00,电子科学与技术系软件课程设计,2.1计算机中的颜色表示,单色(21)4位色(24)8位色(28)16位色(216)24位色(224)32位色(232),?,电子科学与技术系软件课程设计,2.1计算机中的颜色表示,一个2*8的图形如何表示(1)24位0 xff00000 x0000ff0 xff00000 x0000ff0 xff00000 x0000ff0 xff00000 x0000ff0 xff00000 x0000ff0 xff00000 x0000ff0 xff00000 x0000ff0 xff00000 x0000ff(2)16位(565模式)0 xf8000 x001f0 xf8000 x001f0 xf8000 x001f0 xf8000 x001f0 xf8000 x001f0 xf8000 x001f0 xf8000 x001f0 xf8000 x001f,位图数据,电子科学与技术系软件课程设计,2.1计算机中的颜色表示,一个2*8的图形如何表示(3)1位建立调色板0:0 xff00001:0 x0000ff位图数据0101010110101010(0 x550 xaa)(4)8位建立调色板0:0 xff00001:0 x0000ff.255:0 x000000位图数据0 x010 x000 x010 x000 x010 x000 x010 x000 x010 x000 x010 x000 x010 x000 x010 x00,位图数据,电子科学与技术系软件课程设计,2.2BMP文件格式,一般BMP文件可以看成4个部分组成:BMP文件头BMP信息头颜色表(调色板)(optional)定义BMP位图数据,电子科学与技术系软件课程设计,2.2BMP文件格式,1.BMP文件头,电子科学与技术系软件课程设计,2.BMP信息头,2.2BMP文件格式,电子科学与技术系软件课程设计,2.2BMP文件格式,3.颜色表(调色板),电子科学与技术系软件课程设计,2.2BMP文件格式,4.位图数据,电子科学与技术系软件课程设计,2.2BMP文件格式,实例分析实例1,基本属性:宽:107高:47颜色深度:24位色文件大小:15282,图象头BM,文件大小0 x3BB2,保留字段0 x0000,位图数据开始偏移,图象头信息大小,位图宽度0 x6B107,位图高度0 x2F=47,图象面数,颜色深度0 x182424位色,压缩方式无压缩,位图数据大小0 x7C3B,位图数据区域,电子科学与技术系软件课程设计,2.2BMP文件格式,实例分析实例2,基本属性:宽:107高:47颜色深度:8位色文件大小:6154,文件标识BM,文件大小0 x180A,保留字段0 x0000,图象数据开始偏移,图象信息头大小,图象宽度0 x6B107,图象高度0 x2F47,图象面数1,位数/象素0 x88位色,压缩方式0无压缩,位图数据大小(字节)0 x13D4,颜色表(调色板)区域,位图数据区域,电子科学与技术系软件课程设计,2.3RLE压缩算法简介,为什么压缩?,压缩方法分类?,考虑未压缩的BMP文件,它们通常比同一幅图像的经过压缩后的文件格式要大很多。例如,一个800600的24位几乎占据1.4MB空间。因此它们通常不适合在网络或者其他应用场合。,无损压缩,如:RLE,Huffman等等;有损压缩,如:DCT等等,电子科学与技术系软件课程设计,2.3RLE压缩算法简介,行程压缩编码(RunLengthEncoding)BI_RLE8每个象素为8比特的RLE压缩编码,可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式可在同一幅图中的任何地方使用。编码方式绝对方式,由2个字节组成,第一个字节指定使用相同颜色的象素数目,第二个字节指定使用的颜色索引。此外,这个字节对中的第一个字节可设置为0,联合使用第二个字节的值表示:第二个字节的值为0:行的结束。第二个字节的值为1:图象结束。第二个字节的值为2:其后的两个字节表示下一个象素从当前开始的水平和垂直位置的偏移量。,绝对方式:第一个字节设置为0,而第二个字节设置为0 x030 xFF之间的一个值。在这种方式中,第二个字节表示跟在这个字节后面的字节数,每个字节包含单个象素的颜色索引。,示例:如下面用16进制表示的8-位压缩图象数据序列0304050600034556670002780002050102780000091E0001这些压缩数据可解释为:,电子科学与技术系软件课程设计,行程压缩编码(RunLengthEncoding)BI_RLE4每个象素为4比特的RLE压缩编码,同样也可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式也可在同一幅图中的任何地方使用。编码方式绝对方式,由2个字节组成,第一个字节指定象素数目,第二个字节包含两种颜色索引,一个在高4位,另一个在低4位。第一个象素使用高4位的颜色索引,第二个使用低4位的颜色索引,第3个使用高4位的颜色索引,BI_RLE4也同样联合使用第二个字节中的值表示:第二个字节的值为0:行的结束。第二个字节的值为1:图象结束。第二个字节的值为2:其后的两个字节表示下一个象素从当前开始的水平和垂直位置的偏移量。,这个字节对中的第一个字节设置为0,第二个字节包含有颜色索引数,其后续字节包含有颜色索引,颜色索引存放在该字节的高、低4位中,一个颜色索引对应一个象素。,2.3RLE压缩算法简介,电子科学与技术系软件课程设计,2.3RLE压缩算法简介,示例:如下面用16进制表示的4-位压缩图象数据序列0304050600064556670004780002050104780000091E0001这些压缩数据可解释为:,电子科学与技术系软件课程设计,3.滚动字幕的实现,主要内容包括:1.熟悉点阵字库的存取规则;2.读取文件的输入信息,包括滚动方式,显示位置、尺寸以及内容等;3.利用C语言实现在指定位置滚动显示文件中的内容。,电子科学与技术系软件课程设计,3.滚动字幕的实现,点阵字库简介区位码GB2312字符集构成一个94行、94列的表,行号称为区号,列号称为位号,每一个汉字用它所在的区号和位号来表示;机内码一个汉字字符由两个字节的机内码表示,分别称为高字节内码和低字节内码。它们和区位码的联系在于:区码高字节内码0 xa0,位码低字节内码0 xa0。如:汉字“升”,机内码为0 xc9fd区码=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.GFMReadRectangle();6.GFMWriteRectangl();,电子科学与技术系软件课程设计,4.基本绘图函数介绍,1.GFM_DrawPixel(INT32UwhichColor,INT32Ux,INT32Uy,INT32UpixelCount),电子科学与技术系软件课程设计,4.基本绘图函数介绍,2.GFMDrawLine(INT32UstartX,INT32UstartY,INT32UendX,INT32UendY,INT32UColor);,GFM_DrawLine(0,26,16,26,0 xFFFF0000);,GFM_DrawLine(12,2,2,12,0 xFFFF0000,);,(12,2),(2,12),(16,26),(0,26),电子科学与技术系软件课程设计,4.基本绘图函数介绍,3.GFMDrawRectangle(INT32Ux,INT32Uy,INT32Uwidth,INT32Uheight,INT32Ucolor,BOOLfill);,(26,10),GFM_DrawRectangle(2,2,25,9,0 xFFFF0000,0);,GFM_DrawRectangle(2,2,25,9,0 xFFFF0000,1);,(2,2),电子科学与技术系软件课程设计,4.基本绘图函数介绍,4.GFMDrawCircle(INT32UxCentre,INT32UyCentre,INT32Ur,INT32Ucolor,BOOLfill);,GFM_DrawCircle(20,15,10,0 xFFFF0000,0);,r=10,GFM_DrawCircle(20,15,10,0 xFFFF0000,1);,电子科学与技术系软件课程设计,4.基本绘图函数介绍,5.GFMReadRectangle(INT32Ux,INT32Uy,INT32Uwidth,INT32Uheight,INT8U*dest);,(x,y),width,height,电子科学与技术系软件课程设计,4.基本绘图函数介绍,6.GFMWriteRectangl(INT32Ux,INT32Uy,OSD_RECTrect,UINT8*source,INT32Uwidth,INT32Uheight);,电子科学与技术系软件课程设计,5.实时操作系统简介,单任务和多任务(task)消息和消息队列(message,queue)信号量(semaphore),电子科学与技术系软件课程设计,5.实时操作系统简介,任务(task)基本函数调用UINT32DTOS_DRV_CreateTask(void(*task)(void),INT32Upriority,INT32UstackSize,INT8SName);voidDTOS_DRV_DelayTask(INT16ms);,电子科学与技术系软件课程设计,5.实时操作系统简介,消息和队列(message/queue)基本函数调用UINT32DTOS_DRV_CreatQueue(INT32UQueueSize);INT32SDTOS_DRV_SendMessage(INT32UqueueID,T_Message*Message);INT32SDTOS_DRV_ReceiveMessage(INT32UqueueID,T_Message*Message);,电子科学与技术系软件课程设计,5.实时操作系统简介,信号量基本函数调用INT32DTOS_DRV_CreateSemaphore(charname4,INT32UinitValue,INT32UWaitMode,INT32U*semId);INT32DTOS_DRV_SetSemaphore(INT32UId);INT32DTOS_DRV_GetSemaphore(INT32UId);,电子科学与技术系软件课程设计,入口函数,提供一个开发平台,已经对绘图环境进行了初始化工作。提供了一个设计入口-MainTask_Init(),该函数是一个空函数,在此处添加所需要的代码。可以采用单任务模式,也可以使用模拟的实时操作系统,采用多任务模式开发

温馨提示

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

评论

0/150

提交评论