




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本次课程安排 v本设计的目的、内容和基本要求 v课程设计题目与设计内容简介 v基本绘图函数介绍 v模拟嵌入式实时操作系统简介 电子科学与技术系 软件课程设计 1. 本设计的目的、内容和基本要求 目的 v本课程设计的目的是通过一个小设计实例来加深 对C语言的理解和应用,在完成了本次课程设计 后能够较为熟练的使用C语言编写小规模的应用 程序以实现特定的功能。 电子科学与技术系 软件课程设计 1. 本设计的目的、内容和基本要求 内容 vBMP图形格式分析和显示 电子科学与技术系 软件课程设计 1. 本设计的目的、内容和基本要求 基本要求 v程序具有较强的可读性,关键代码必须有注释; v注意代码的书写风格。 电子科学与技术系 软件课程设计 2. BMP图像显示 利用C 语言实现BMP 格式图象文件的分析和显示 。主要内容包括: 完成BMP 格式图像的显示,要求在提供的画布 上循环的显示某一文件夹下面所有的BMP 文件(支 持所有BMP格式); 实现图像的特效显示(淡入淡出,百页窗等等)。 电子科学与技术系 软件课程设计 2. BMP图像显示 2.1 计算机中的颜色 2.2 BMP文件格式 2.3 RLE压缩算法简介 电子科学与技术系 软件课程设计 2.1 计算机中的颜色表示 v计算机如何表示颜色 三基色原理(Red Green Blue),每一基色 用一个字节表示; 可以在Winsows自带的画图软件中自己配色来 了解计算机中如何表示颜色。 红色:0xFF 0x00 0x00 白色:0xFF 0xFF 0xFF 黑色:0x00 0x00 0x00 电子科学与技术系 软件课程设计 2.1 计算机中的颜色表示 v单色(21) v4位色(24) v8位色(28) v16位色(216) v24位色(224) v32位色(232) 需要调色板(颜色表) 不需要调色板 ? 电子科学与技术系 软件课程设计 2.1 计算机中的颜色表示 v 一个2*8的图形如何表示 (1)24位 0xff0000 0x0000ff 0xff0000 0x0000ff 0xff0000 0x0000ff 0xff0000 0x0000ff 0xff0000 0x0000ff 0xff0000 0x0000ff 0xff0000 0x0000ff 0xff0000 0x0000ff (2)16位(565模式) 0xf800 0x001f 0xf800 0x001f 0xf800 0x001f 0xf800 0x001f 0xf800 0x001f 0xf800 0x001f 0xf800 0x001f 0xf800 0x001f 位图数据 电子科学与技术系 软件课程设计 2.1 计算机中的颜色表示 v 一个2*8的图形如何表示 (3)1位 建立调色板 0:0xff0000 1:0x0000ff 位图数据 01010101 10101010 (0x55 0xaa) (4)8位 建立调色板 0:0xff0000 1:0x0000ff 255: 0x000000 位图数据 0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 0x01 0x00 位图数据 电子科学与技术系 软件课程设计 2.2 BMP文件格式 一般BMP文件可以看成4个部分组成: vBMP文件头 vBMP信息头 v颜色表(调色板) (optional) v定义BMP位图数据 电子科学与技术系 软件课程设计 2.2 BMP文件格式 1.BMP文件头 文 件 信 息 头 字节偏移名称大小内容 0x0000文件标识2字节 识别位图的类型,一般为 “BM” 0x0002文件大小4字节文件大小(以字节为单位) 0x0006保留4字节保留,设置为0 0x000a位图数据偏移4字节 从文件开始到位图数据开始 之间的偏移量(字节为单 位) 电子科学与技术系 软件课程设计 2.BMP信息头 图 象 信 息 头 字节偏移名称大小内容 0x000e信息头长度4信息头长度 0x0012宽4位图的宽度 0x0016高4位图的高度 0x001a面数2位图的面数,总是1 0x001c位/象素2每个象素的位数 0x001e压缩4压缩说明 0x0022位图数据大小4位图数据的大小 0x0026水平分辨率4水平分辨率 0x002a垂直分辨率4垂直分辨率 0x002e颜色数4位图使用的颜色数 0x0032重要颜色4指定重要的颜色数。 2.2 BMP文件格式 电子科学与技术系 软件课程设计 2.2 BMP文件格式 3.颜色表(调色板) 颜 色 表 字节偏移名称大小内容 根据BMP 版本的不 同而不同 调色板N4 调色板规范。对于调 色板中的每个表项, 这4个字节用下述方 法来描述RGB的值: 蓝色分量: 1字节 绿色分量: 1字节 红色分量: 1字节 填充符: 1字节 电子科学与技术系 软件课程设计 2.2 BMP文件格式 4.位图数据 图 象 数 据 字节偏移名称大小内容 根据BMP 版本的不 同而不同 位图 图象 数据 不定 该域的大小取决于压缩方法 及图像的尺寸和图像的位深 度,它包含所有的位图数据 字节,这些数据可能是彩色 调色板的索引号,也可能是 实际的RGB值,这将根据图 像信息头中的位深度值来决 定。 电子科学与技术系 软件课程设计 2.2 BMP文件格式 v实例分析 实例1 基本属性: 宽:107 高:47 颜色深度:24位色 文件大小:15282 图象头 BM 文件大小 0x3BB2 保留字段 0x0000 位图数据开 始偏移 图象头信 息大小 位图宽度 0x6B107 位图高度 0x2F=47 图象面 数 颜色深度 0x1824 24位色 压缩方式 无压缩 位图数据大小 0x7C3B 位图数据区 域 电子科学与技术系 软件课程设计 2.2 BMP文件格式 v实例分析 实例2 基本属性: 宽:107 高:47 颜色深度:8位色 文件大小:6154 文件标识 BM 文件大小 0x180A 保留字段 0x0000 图象数据 开始偏移 图象信息 头大小 图象宽度 0x6B107 图象高度 0x2F47 图象面数 1 位数/象素 0x8 8位色 压缩方式 0 无压缩 位图数据大小 (字节) 0x13D4 颜色表 (调色板)区域 位图数据 区域 电子科学与技术系 软件课程设计 2.3 RLE压缩算法简介 v为什么压缩? v压缩方法分类? 考虑未压缩的BMP文件,它们通常比同一幅图像的经 过压缩后的文件格式要大很多。例如,一个800600的24 位几乎占据1.4MB空间。因此它们通常不适合在网络或者其 他应用场合。 1. 无损压缩, 如:RLE,Huffman等等; 2. 有损压缩,如:DCT等等 从数据冗余的角度对数据进行压缩,无 损压缩方法的优点是能够比较好地保持 图像的质量,但是相对来说这种方法的 压缩率比较低。 压缩数据 原始数据 如:RAR,winzip等等文件压缩 有损压缩利用了人类对图像或声波中的某些频率成 分不敏感的特性,允许压缩过程中损失一定的信息 ;虽然不能完全回复原始数据,但是所损失的部分 对理解原始图像的影响缩小,却换来了大得多的压 缩比。有损压缩广泛应用于语音,图像和视频数据 的压缩 。 原始数据 压缩数据 例如:mp3,jpeg,mpeg等等 电子科学与技术系 软件课程设计 2.3 RLE压缩算法简介 行程压缩编码(Run Length Encoding) BI_RLE8 每个象素为8比特的RLE压 缩编码,可使用编码方式和绝对方式 中的任何一种进行压缩,这两种方式 可在同一幅图中的任何地方使用。 编码方式 绝对方式 由2个字节组成,第一个字节指定使用相同颜色的 象素数目,第二个字节指定使用的颜色索引。此 外,这个字节对中的第一个字节可设置为0,联合 使用第二个字节的值表示: 第二个字节的值为0:行的结束。 第二个字节的值为1:图象结束。 第二个字节的值为2:其后的两个字节表示下一个 象素从当前开始的水平和垂直位置的偏移量。 绝对方式:第一个字节设置为0,而第二个字节设 置为0x030xFF之间的一个值。在这种方式中, 第二个字节表示跟在这个字节后面的字节数,每个 字节包含单个象素的颜色索引。 示例:如下面用16进制表示的8-位压缩图象数据序列 03 04 05 06 00 03 45 56 67 00 02 78 00 02 05 01 02 78 00 00 09 1E 00 01 这些压缩数据可解释为 : 压缩数据扩展数据 03 0404 04 04 05 0606 06 06 06 06 00 03 45 56 67 0045 56 67 02 7878 78 00 02 05 01从当前位置右移5个位置后向下移一行 02 7878 78 00 00行结束 09 1E1E 1E 1E 1E 1E 1E 1E 1E 1E 00 01RLE编码图象结束 电子科学与技术系 软件课程设计 行程压缩编码(Run Length Encoding) 1.BI_RLE4 每个象素为4比特的RLE压缩 编码,同样也可使用编码方式 和绝对方式中的任何一种进行 压缩,这两种方式也可在同一 幅图中的任何地方使用 。 编码方式 绝对方式 由2个字节组成,第一个字节指定象素数目,第二 个字节包含两种颜色索引,一个在高4位,另一个 在低4位。第一个象素使用高4位的颜色索引,第 二个使用低4位的颜色索引,第3个使用高4位的颜 色索引,BI_RLE4也同样联合使用第二个字节中的 值表示: 第二个字节的值为0:行的结束。 第二个字节的值为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 这些压缩数据可解释为 : 压缩数据扩展数据 03 040 4 0 05 060 6 0 6 0 00 06 45 56 67 004 5 5 6 6 7 04 787 8 7 8 00 02 05 01从当前位置右移5个位置后向下移一行 04 787 8 7 8 00 00行结束 09 1E1 E 1 E 1 E 1 E 1 00 01RLE编码图象结束 电子科学与技术系 软件课程设计 3. 滚动字幕的实现 主要内容包括: 1. 熟悉点阵字库的存取规则; 2. 读取文件的输入信息,包括滚动方式 ,显示位置、尺寸以及内容等; 3.利用C语言实现在指定位置滚动显示文 件中的内容。 电子科学与技术系 软件课程设计 3. 滚动字幕的实现 v 点阵字库简介 v 区位码 GB2312字符集构成一个94行、94列的表,行号称为区号,列号称为位号, 每一个汉字用它所在的区号和位号来表示; v 机内码 一个汉字字符由两个字节的机内码表示,分别称为高字节内码和低字节内 码。它们和区位码的联系在于: 区码高字节内码0xa0,位码低字节内码0xa0。 如:汉字 “升”,机内码为 0xc9fd 区码=0xc9-0xa0=0x29 位码=0xfd-0xa0=0x5d 电子科学与技术系 软件课程设计 3. 滚动字幕的实现 v汉字点阵字库存放方式 从第1区15区 符号 从第16区55区 一级汉字 从第56区87区 二级汉字 v字模在字库中按照区位码从小到大排列 v每字符占字库大小由点阵大小决定,如1616点 阵的字库,每个字符占32字节 2424点阵的字库,每个字符占72字节 电子科学与技术系 软件课程设计 4. 基本绘图函数介绍 1.GFMDrawPixel(); 2.GFMDrawLine(); 3.GFMDrawRectangle(); 4.GFMDrawCircle(); 5.GFMReadRectangle(); 6.GFMWriteRectangl(); 电子科学与技术系 软件课程设计 4. 基本绘图函数介绍 1.GFM_DrawPixel(INT32U whichColor, INT32U x, INT32U y, INT32U pixelCount) (15,10) GFM_DrawPixel( 0xFFFF0000, 15, 10, 1); (12,35) GFM_DrawPixel( 0xFFFF0000, 12, 35, 4); 电子科学与技术系 软件课程设计 4. 基本绘图函数介绍 2.GFMDrawLine( INT32U startX, INT32U startY, INT32U endX, INT32U endY, INT32U Color); GFM_DrawLine( 0,26,16,26,0xFFFF0000); GFM_DrawLine( 12,2,2, 12,0xFFFF0000, ); (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,0xFFFF0000,0) ; GFM_DrawRectangle (2,2,25,9,0xFFFF0000,1) ; (2,2 ) 电子科学与技术系 软件课程设计 4. 基本绘图函数介绍 4.GFMDrawCircle( INT32U xCentre, INT32U yCentre, INT32U r, INT32U color, BOOL fill ); GFM_DrawCircle(20, 15,10,0xFFFF0000,0 ); r=10 (20,15) GFM_DrawCircle(20, 15,10,0xFFFF0000,1 ); 电子科学与技术系 软件课程设计 4. 基本绘图函数介绍 5.GFMReadRectangle( INT32U x, INT32U y, INT32U width, INT32U height, INT8U *dest); (x,y ) width height 电子科学与技术系 软件课程设计 4. 基本绘图函数介绍 6.GFMWriteRectangl( INT32U x, INT32U y, OSD_RECT rect, UINT8 *source, INT32U width, INT32U height); 提示消息 电子科学与技术系 软件课程设计 5. 实时操作系统简介 v单任务和多任务(task) v消息和消息队列(message, queue) v信号量(semaphore) 电子科学与技术系 软件课程设计 5. 实时操作系统简介 v任务(task) v基本函数调用 UINT32 DTOS_DRV_CreateTask( void (*task)(void), INT32U priority, INT32U stackSize, INT8S Name); void DTOS_DRV_DelayTask( INT16 ms); 电子科学与技术系 软件课程设计 5. 实时操作系统简介 v 消息和队列(message/queue) v 基本函数调用 UINT32 DTOS_DRV_CreatQueue( INT32U QueueSize ); INT32S DTOS_DRV_SendMessage( INT32U queueID , T_Message *Message);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目控制与评估试题及答案
- 信息处理技术员实务技巧试题及答案
- 智慧旅游行业发展趋势与市场潜力分析
- 计算机数据分析方法试题及答案
- 高考作文理想的实现与挑战测试及答案
- 推动乡村医疗服务改革方案
- 推动思政课改革创新的有效策略与实践路径
- 采石入股协议书
- 运送瓷砖协议书
- 车辆拖救协议书
- DB32T 4321-2022 公路工程施工安全管理信息系统技术规范
- 电影《白日梦想家》课件
- 团员发展纪实簿
- 口腔医学美学学习通超星期末考试答案章节答案2024年
- 【《网上购物系统的设计与实现》13000字(论文)】
- DB11-T 1952-2022 地理国情监测技术规程
- 砂石料加工合同
- 静脉输血技术操作并发症的预防及处理
- 城镇燃气埋地钢质管道腐蚀控制技术规程培训
- 全国国道大全(包括里程及路过城市)
- 化学品作业场所安全警示标志大全
评论
0/150
提交评论