网站大量收购独家精品文档,联系QQ:2885784924

HD系列机型中图片显示原理与应用.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HD系列机型中图片显示原理及应用 原理 在机具屏幕上,是以点阵像素的形式显示图形,每个像素点以一个二进制位来表示,例如,如果该像素显示,则值为1,否则为0,8个二进制位形成一个字节,一个32×32的图形则需要128个字节来表示,显示图形时,则按图片大小,进行循环描点。 技巧 根据显示原理,一般的编程思路就是根据点阵模板,进行描点,如果图片比较大,例如32×32的图形,则需要描点1024次,这样大大的浪费了CPU的时间,鉴于此,我们又通过了另一种手段来实现显示图形,采用图片一次性显示的方式,即块显方式。 示例 1.循环描点方式 unsigned char buffer [] = { 8, 64, 11, 248, 16, 64, 39, 248, 10, 168, 27, 248, 40, 0, 13, 64, 11, 40, 13, 24, 9, 240, 0, 0 }; int i, j, k; int r1, r2; r1 = 1; //描黑点 r2 = 0; //描白点 for(i = 0; i 12; i ++) for(j = 0; j 2; j++) for(k = 0; k 8; k ++) if((buffer[ i * 2 + j] (7 - k)) 0x1) put_pixel(x + 8 * j + k, y + i, r1, DISP_PUT_MODE_PUT); else put_pixel(x + 8 * j + k, y + i, r2, DISP_PUT_MODE_PUT); 2.块显方式 unsigned char buffer [] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 255, 255, 240, 1, 0, 0, 16, 1, 62, 0, 16, 1, 250, 0, 16, 1, 250, 127, 208, 7, 251, 255, 208, 7, 217, 144, 208, 7, 128, 20, 208, 3, 194, 40, 208, 1, 229, 36, 208, 1, 231, 250, 208, 15, 8, 4, 208, 15, 8, 7, 208, 15, 8, 4, 16, 15, 200, 4, 16, 1, 231, 255, 240, 1, 229, 63, 240, 3, 194, 160, 0, 7, 129, 80, 0, 7, 219, 176, 0, 3, 251, 224, 0, 0, 254, 0, 0, 0, 126, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, char dispbuffer[2048]; memset(dispbuffer, 0, 2048); memcpy(dispbuffer + 4, buffer, 128); dispbuffer [0] = 0; dispbuffer [1] = 12; dispbuffer [2] = 32; dispbuffer [3] = 32; Disp_put_bmp((typ_BMP_rec * ) dispbuffer); 从以上代码可以看出,块显方式要绝对优于循环方式,从实用性方面来说,都差不多,主要的难点都是位图图片转模板,在我们的IDE开发环境里,我们提供了这一功能。 首先,要准备好单色位图文件,位图必须为单色,大小不能大于 128*64; 然后再位图文件加入到工程中,编译,就会在临时目录里生成idebmp.h,idebmp.c,idebmp.o 文件; 位图被转换为字符数组,数组名为bmp 加上位图的文件名,例如1.bmp 对应的数组名为bmp1, 文件名的字符要求与C 的变量名要求相同,只能是下划线、数字和大小写字母,位图文件不能重名。 位图数组数据结构:前4个字节为位图的位置,长宽,紧接着就是位图数据。 菜单 从以上内容我们就可以利用这一块显的特性,专门将文字菜单改变成图形菜单,将每个菜单给出一个特定的单色图片,然后按照以上步聚转为位图数组,进行菜单的显示编程。 #define MENUITEMCOUNT 4 static char menubuffer[2048]; char MENUPIXEL[MENUITEMCOUNT][128] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 255, 255, 240, 1, 0, 0, 16, 1, 62, 0, 16, 1, 250, 0,

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档