版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件课程设计,电子科学与技术系 软件课程设计,本次课程安排,本设计的目的、内容和基本要求 课程设计题目与设计内容简介 基本绘图函数介绍 模拟嵌入式实时操作系统简介,电子科学与技术系 软件课程设计,1.本设计的目的、内容和基本要求,目的 本课程设计的目的是通过一个小设计实例来加深对C语言的理解和应用,在完成了本次课程设计后能够较为熟练的使用C语言编写小规模的应用程序以实现特定的功能。,电子科学与技术系 软件课程设计,1.本设计的目的、内容和基本要求,内容 BMP图形格式分析和显示,电子科学与技术系 软件课程设计,1.本设计的目的、内容和基本要求,基本要求 程序具有较强的可读性,关键代码必须有注释
2、; 注意代码的书写风格。 课程设计报告、代码要求独立完成;,电子科学与技术系 软件课程设计,报告命名格式要求:,报告文件命名: 班级-姓名-学号-软件课程设计-预研报告.doc 班级-姓名-学号-软件课程设计-中期报告.doc 班级-姓名-学号-软件课程设计-最终报告.doc 最终代码命名: 班级-姓名-学号-软件课程设计-最终代码.rar 报告提交格式: 转换成word2003版本的格式提交,电子科学与技术系 软件课程设计,2. BMP图像显示,利用C语言实现BMP格式图象文件的分析和显示。主要内容包括:,用菜单显示某一文件夹下面所有的BMP 文件列表; 实现BMP格式图像的显示(非压缩方式
3、) 。,电子科学与技术系 软件课程设计,2. BMP图像显示,2.1 计算机中的颜色 2.2 BMP文件格式 2.3 RLE压缩算法简介,电子科学与技术系 软件课程设计,2.1 计算机中的颜色表示,计算机如何表示颜色 三基色原理(Red Green Blue),每一基色用一个字节表示; 可以在Winsows自带的画图软件中自己配色来了解计算机中如何表示颜色。 红色: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位
4、色(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 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
5、 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 xff0000 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 x0
6、1 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) 定义BMP位图数据,电子科学与技术系 软件课程设计,2.2 BMP文件格式,1.BMP文件头,电子科学与技术系 软件课程设计,2.BMP信息头,2.2 BMP文件格式,电子科学与技术系 软件课程设计,2.2 BMP文件格式,3.颜色表(调色板),电子科学与技术系 软件课程设计,2.2 BMP文件格式,4.位图数据,电子科学与
7、技术系 软件课程设计,2.2 BMP文件格式,实例分析 实例1,基本属性: 宽:107 高:47 颜色深度:24位色 文件大小:15282,图象头 BM,文件大小 0 x3BB2,保留字段 0 x0000,位图数据开始偏移,图象头信息大小,位图宽度 0 x6B107,位图高度 0 x2F=47,图象面数,颜色深度 0 x1824 24位色,压缩方式 无压缩,位图数据大小 0 x7C3B,位图数据区域,电子科学与技术系 软件课程设计,2.2 BMP文件格式,实例分析 实例2,基本属性: 宽:107 高:47 颜色深度:8位色 文件大小:6154,文件标识 BM,文件大小 0 x180A,保留字段
8、 0 x0000,图象数据开始偏移,图象信息头大小,图象宽度 0 x6B107,图象高度 0 x2F47,图象面数 1,位数/象素 0 x8 8位色,压缩方式 0 无压缩,位图数据大小(字节) 0 x13D4,颜色表 (调色板)区域,位图数据 区域,电子科学与技术系 软件课程设计,2.3 RLE压缩算法简介,为什么压缩?,压缩方法分类?,考虑未压缩的BMP文件,它们通常比同一幅图像的经过压缩后的文件格式要大很多。例如,一个800600的24位几乎占据1.4MB空间。因此它们通常不适合在网络或者其他应用场合。,无损压缩, 如:RLE,Huffman等等; 有损压缩,如:DCT等等,电子科学与技术
9、系 软件课程设计,2.3 RLE压缩算法简介,行程压缩编码(Run Length Encoding) BI_RLE8 每个象素为8比特的RLE压缩编码,可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式可在同一幅图中的任何地方使用。 编码方式 绝对方式,由2个字节组成,第一个字节指定使用相同颜色的象素数目,第二个字节指定使用的颜色索引。此外,这个字节对中的第一个字节可设置为0,联合使用第二个字节的值表示: 第二个字节的值为0:行的结束。 第二个字节的值为1:图象结束。 第二个字节的值为2:其后的两个字节表示下一个象素从当前开始的水平和垂直位置的偏移量。,绝对方式:第一个字节设置为0,而第
10、二个字节设置为0 x030 xFF之间的一个值。在这种方式中,第二个字节表示跟在这个字节后面的字节数,每个字节包含单个象素的颜色索引。,电子科学与技术系 软件课程设计,示例:如下面用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 这些压缩数据可解释为 :,电子科学与技术系 软件课程设计,行程压缩编码(Run Length Encoding) BI_RLE4 每个象素为4比特的RLE压缩编码,同样也可使用编码方式和绝对方式中的任何一种进行压缩,这两种方式也可在同一
11、幅图中的任何地方使用 。 编码方式 绝对方式,2.3 RLE压缩算法简介,由2个字节组成,第一个字节指定象素数目,第二个字节包含两种颜色索引,一个在高4位,另一个在低4位。第一个象素使用高4位的颜色索引,第二个使用低4位的颜色索引,第3个使用高4位的颜色索引,BI_RLE4也同样联合使用第二个字节中的值表示: 第二个字节的值为0:行的结束。 第二个字节的值为1:图象结束。 第二个字节的值为2:其后的两个字节表示下一个象素从当前开始的水平和垂直位置的偏移量。,这个字节对中的第一个字节设置为0,第二个字节包含有颜色索引数,其后续字节包含有颜色索引,颜色索引存放在该字节的高、低4位中,一个颜色索引对
12、应一个象素。,电子科学与技术系 软件课程设计,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 这些压缩数据可解释为 :,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,1.GFMDrawPixel(); 2.GFMDrawLine(); 3.GFMDrawRectangle(); 4.GFMDrawCircle(); 5.GFMReadRectangle(); 6.GFMWriteRectangl(); 7.GU
13、IDrawAlignedTextInBuffer(); 8.void GUIDrawAlignedText(); 9.void DrawRoundRectangleInBuffer(); 10.void DrawRoundRectangle();,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,1.GFM_DrawPixel(UINT32 whichColor, UINT32 x, UINT32 y, UINT32 pixelCount),电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,2.GFMDrawLine( UINT32 startX, UINT32 startY, U
14、INT32 endX, UINT32 endY, UINT32 Color);,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( UINT32 x, UINT32 y, UINT32 width, UINT32 height, UINT32 color, BOOL fill);,(26,10),GFM_DrawRectangle (2,2,
15、25,9,0 xFFFF0000,0);,GFM_DrawRectangle (2,2,25,9,0 xFFFF0000,1);,(2,2),电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,4.GFMDrawCircle( UINT32 xCentre, UINT32 yCentre, UINT32 r, UINT32 color, BOOL fill );,GFM_DrawCircle(20, 15,10,0 xFFFF0000,0 );,r=10,GFM_DrawCircle(20, 15,10,0 xFFFF0000,1 );,电子科学与技术系 软件课程设计,4. 基本绘图函数介
16、绍,5.GFMReadRectangle( UINT32 x, UINT32 y, UINT32 width, UINT32 height, UINT8 *dest);,(x,y),width,height,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,6.GFMWriteRectangl( INT32U x, INT32U y, OSD_RECT rect, INT8U *source, INT32U srcWidth, INT32U srcHeight),电子科学与技术系 软件课程设计,source,srcWidth,srcHeight,rect,(x,y),电子科学与技术系 软
17、件课程设计,4. 基本绘图函数介绍,7.void GUIDrawAlignedTextInBuffer( INT32U Color,INT32U fontSize, INT32U *pPixelInRect, INT32U Width,INT32U Height, INT8S* stringPtr, ALIGNED_MODE mode, GUI_RECT TextRect),电子科学与技术系 软件课程设计,pPixelInRect,TextRect,ALIGNED_MODE mode 文字对齐方式,Width,Height,fontSize:20,24,30三种字体大小,电子科学与技术系 软件
18、课程设计,4. 基本绘图函数介绍,8. void GUIDrawAlignedText( INT32U Color, INT8U fontSize, GUI_RECT Rect, INT8S* stringPtr, ALIGNED_MODE mode),Rect,这是一个测试字符串,Color=0 xffffff00,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,9. void DrawRoundRectangleInBuffer( GUI_RECT ActualRect, INT32U color1, INT32U color2, GradeMode mode, ANGLEMODE
19、 angle, INT32U *pPixelInRect, INT32U BufferWidth, INT32U BufferHeight),电子科学与技术系 软件课程设计,pPixelInRect,ActualRect,GradeMode mode 渐变模式 ANGLEMODE angle 倒角方式,BufferWidth,BufferHeight,fontSize:20,24,30三种字体大小,color1 color2,电子科学与技术系 软件课程设计,4. 基本绘图函数介绍,10. void DrawRoundRectangle( GUI_RECT ActualRect, INT32U
20、color1, INT32U color2, GradeMode mode, ANGLEMODE angle),ActualRect,Color=0 xffffff00,color1,color2,电子科学与技术系 软件课程设计,5. 实时操作系统简介,单任务和多任务(task) 消息和消息队列(message, queue) 信号量(semaphore),电子科学与技术系 软件课程设计,5. 实时操作系统简介,任务(task) 基本函数调用 UINT32 DTOS_DRV_CreateTask( void (*task)(void), UINT32 priority, UINT32 stackSize, INT8 Name); void DTOS_DRV_DelayTask( INT16 ms);,电子科学与技术系 软件课程设计,5. 实时操作系统简介,消息和队列(message/queue) 基本函数调用 UINT32 DTOS_DRV_CreatQueue(UINT32 QueueSize ); INT32 DTOS_DRV_SendMessage(UINT32 queueID , T_Message *Message); INT32 DTOS_DRV_ReceiveMessage(UINT32 queueID, T_Message *Message);,电子科学与技
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年祁门县教师招聘笔试模拟试题及答案解析
- 2026年通榆县教师招聘考试参考题库及答案解析
- 2026年甘德县教师招聘笔试备考题库及答案解析
- 西安欧亚学院研究与创新服务平台博士招聘考试备考题库及答案解析
- 2025年枣庄市市中区公务员人员招聘考试试题及答案详解
- 2026湖南宝山有色金属矿业有限责任公司机械化自营队员社会招聘70人考试模拟试题及答案解析
- 2027年江西省江铜铜箔科技股份有限公司第二批次校园招聘7人笔试备考试题及答案解析
- 2026年岚县教师招聘考试模拟试题及答案解析
- 2026年阜城县教师招聘考试备考题库及答案解析
- 2026-贵州中国邮政渠道对接专员招聘考试参考题库-含答案
- 2026半导体材料国产化进程与全球供应链重构趋势分析
- XF-T 3024-2026 电动自行车充电停放场所消防安全管理新规深度解读
- 2026年贵阳市公共交通有限公司第二批驾驶员招聘笔试参考题库及答案详解
- 湖北省武汉市2027届高三上9月调研考试地理试卷( 含答案)
- 有机废气活性炭吸附处理安装工程竣工验收报告
- 帕金森病合并肺炎护理查房
- (2026)中小学爱国知识竞赛试题含答案
- 县级管理档案实施方案
- 2026年交安A、B、C证(公路)考试题及答案
- 国家癌症中心2025年癌症统计报告
- (2026年)血气分析临床解读课件
评论
0/150
提交评论