基于位图和字库技术获取LED点阵信息的方法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
・34・
微 处 理 机
B YT E rgbR e se rved; 一般为 0 }R GBQU AD;
2004 年
像素来显示的。 位图采用一个通用的记录来记载一 组像素的颜色值, 然后映射到显示或输出设备上, 再 由显示输出设备进行图形输出。 设备无关的位图 D I B 可以在不同的机器 ( 硬件 设备) 或系统中显示位图所固有的图像。 DI B 是一种 外部的位图格式, 经常存储为以 BM P 为扩展名的 位图文件 ( 有时也以 D I B 为扩展名) 。D I B 位图还支 持图像数据的压缩。 DI B 位图有很多编程优势, 因为 它自带颜色信息, 所以对调色板管理更容易。 现在的 BM P 文件可以支持所有的屏幕分辨率和 W indow s 所支持的颜色组合。 DI B 位图文件的结构按顺序包括位图文件头结 构 B ITM A PF I L EH EAD ER、位 图 信 息 头 结 构 位图颜色表 R GBQU AD B ITM A P I N FO H EAD ER、 和图像数据 4 部分。在内存中一个完整的 D I B 由后 3 个部分组成。 第一部分为位图文件结构, 这是一个定长结构, 定义如下:
要通过对屏幕或者显卡输出的截取来获得显示屏的 显示内容。 本文着重介绍了两种不同的显示屏显示 内容的获取方法: 字库方法和屏幕截取方法。 采用 + + V isua l C 6. 0 编写软件, 实现计算机对显示屏的 控制。
2 截取位图方式
当所需显示的内容需要根据不同的情况改变字 体、 汉字的大小时, 对矢量字库的操作可以满足要 求, 因为矢量字库是以图形信息建库的, 每个汉字由 若干笔划或笔划的连通体组成, 库中存放的是这些 线段的端点坐标。 由于每个笔划的折线数不一样, 每 个字的笔划数也不一样, 汉字在库中所占的长度是 不相等的。 操作起来比较困难, 而且从库中得到的汉 字信息并不是我们所需的点阵信息, 而是图形信息, 还要有一定的算法将其转化为点阵信息, 所以我们 没有采用矢量字库, 而是采用另一种方法: 在 V isua l + + C 中利用位图技术对屏幕进行截取, 将所需显示 的部分存成一个位图文件, 再从位图文件中取得所 需内容的点阵信息, 这样一来就不需要使用矢量字 库了, 而且还可以实现简单图形的显示。 2. 1 位图简介 M icro soft W indow s B itm ap (BM P ) 文件格式是 M icro soft W indow s 操作环境所支持的几种图像文 件格式之一。 BM P 是W indow s 的原始位图格式, 用 来保存任意类型的位图数据。 位图实际上是一组用 来描述像素点的数据集合, 计算机上的显示是通过
通常为 0 }
B ITM A P I N FO H EAD E,
第二部分为位图信息结构
typ edef st ruct tagB ITM A P I N FO H EAD ER { DW O RD b iS ize; 本结构的字节数 LON G b i W id th; 图像宽度 LON G b iH e igh t; 图像长度 W O RD b iP lane s; 目 标 设 备 的 位 平 面 数, 只 能 为 1 W O RD b i B itCo un t; 每个像素的 b it 数 DW O RD b iCom p re ssio n; 图像压缩格式, 几乎总为 0 DW O RD b iS ize I m age; 图像数据的大小 LON G b iX P e lsP e r M e te r; 水平每米的像素个数 LON G b iYP e lsP e r M e te r; 垂直每米的像素个数 DW O RD b iC lrU sed; 调色板的颜色数, 通常为 0 DW O RD b iC lr I m po rtan t; 显示必需的颜色数,
图 1 L ED 显示屏系统框图
将所需显示内容转换为点阵信息的方法一般分 为两种: 对于简单的显示屏, 只显示文字且字体和汉 字大小固定的, 可以通过对汉字字库的操作获取汉 字的点阵信息来实现; 对于字体及汉字大小要求有 变化或者显示图像、 多媒体等涉及图形的显示屏, 则
蔡容 (1980- ) , 女, 江苏南京人, 硕士研究生, 主要从事计算机控制和图像处理方面的研究。 收稿日期: 2003- 10- 20
M e thod s of G e tting L a ttice Info rm a tion fo r L ED b y Us ing D e v ice Ind e pe nd e n t B itm a p a nd C h ine s e C ha ra c te r L ib ra ry
typ edef st ruct tagB ITM O RD bfT yp e; BM P 文件的标识 DW O RD bfS ize; BM P 文件的大小 W O RD bfR e se rved1; 总等于 0 W O RD bfR e se rved2; 总等于 0 DW O RD bfO ffB it s; 从本结构到图像数据的偏移 }B ITM A P F I L EH EAD ER , FA R L PB ITM A P F I L EH EAD ER , PB ITM A P F I L EH EAD ER;
1 引 言
L ED 显示屏作为现代信息显示的重要媒体, 在 金融证券、 体育场馆、 机场、 交通、 商业、 广告宣传等 许多领域得到了广泛应用。 由于现在使用的 L ED 显示屏大都是点矩阵型 的, 这就要求所显示的内容也为点阵形式。 但是大多 数时候我们得到的显示内容并非点阵形式, 如汉字、 图形等等, 这就需要用一定的方法将其转换成对应 的点阵形式。 图 1 所示的系统是一种将汉字或图形 转换成点阵形式并控制 L ED 显示的方法。 系统通过 计算机软件将所需显示的汉字、 图形转换成点阵通 过串行口传递给显示控制单片机, 再由单片机来控 制 L ED 显示屏的显示。 本文介绍的是该系统的计算 机控制部分。
CA I Rong, ZHAN G B ao - p ing
(N anj ing U n iv ersity , E lectron ic E ng ineering D ep a rtm en t, N anj ing 210093, C h ina )
Abstract: Tw o d ifferen t m ethod s in get t ing la t t ice info rm a t ion fo r L ED screen d isp lay s a re in t roduced: one is to get D evice Indep enden t B itm ap by in tercep t ing com p u ter screen, the o ther is + + the u sage of Ch inese cha racter lib ra ry. T hese tw o m ethod s a re i m p lem en ted by V isua l C . + + Key words: D evice Indep enden t B itm ap; Ch inese cha racter lib ra ry; V isua l C
最后便是 D I 对于 8 位的 D I B 数据。 B , 每一个字 节代表了一个像素; 对于 16 位的 D I B , 每两个字节 代表一个像素; 对于 24 位的 D I B , 每三个字节代表 一个像素; 对于 32 位的 D I B , 每四个字节代表一个 像素。 2. 2 位图截取的实现 调用以下所提到的函数时, 需要将 D ibap i . h及 . cpp 加入所建立的工程。 D ibap i 2. 2. 1 将屏幕上显示的内容拷贝到内存 要 获 得 屏 幕 图 形, 可 以 使 用 CW nd GetW indow R ect ( ) 方法获得客户区的大小, CR ect 类变量 rect 用于保存长方形的大小。 我们把指向 CR ect 对 象 的 指 针 传 递 到 CW nd 类 的 使用 CR ect GetW indow R ect () , 以获得视图的尺寸。 类的W id th () 和 H eigh t () 可以获得客户区的端点坐 标, ( 0, 0 ) , ( 0, rect. W id th ( ) ) , ( rect. H eigh t ( ) , 0 ) , ( rect. W id th () , rect. H eigh t () ). 2. 2. 2 创建屏幕设备 通 过 调 用 CDC 类 成 员 函 数 virtua l BOOL C rea teDC (L PCT STR lp szD riverN am e, L PCT STR lp szD eviceN am e, L PCT STR lp szO u tp u t, con st 其中: vo id 3 lp In itD a ta ) 可以获得指定的设备句柄。 函数的第一个参数为设备驱动程序名; 第二个参数 为设备名; 第三个参数为输出介质名, 即输入输出文 件或端口; 最后一个参数指向一个 D EVM OD E 结 构, 用 于 初 始 化 设 备 驱 动 程 序。 HANDL E C rea teCom p a t ib leB itm ap (CDC 3 pDC, in t nW id th, in t nH eigh t ) , 可以创建具有指定宽度和高度, 且与 pDC 相兼容的位图。 2. 2. 3 创建内存设备保存屏幕的图像信息 通 过 调 用 CDC 类 成 员 函 数 virtua l BOOL C rea teCom p a t ib leDC ( CDC 3 pDC, HANDL E ob ject ) , 可以获得与指定设备兼容的内存句柄。 pDC 必须 支 持 光 栅 操 作。 利 用 CDC 类 成 员 函 数 的 SelectO b jectB itm ap ( CDC 3 pDC, HANDL E ob ject ) 把指定对象选择到指定设备中, 其中: 指定 对象为 C rea teCom p a t ib leB itm ap ( ) 的返回值; 指定 设备为与屏幕兼容的内存, 即 C rea teCom p a t ib leDC () 的返回值。 2. 2. 4 将屏幕拷贝到内存 利用 CDC BOOL B itB lt (CDC pD stDC, in t x,
第4期 2004 年 8 月
微 处 理 机
M ICRO PRO CESSO R S
N o. 4 A ug. , 2004
基于位图和字库技术获取 L ED 点阵信息的方法
蔡 容, 张保平
( 南京大学电子科学与工程系, 南京 210093)
摘 要: 本文介绍了两种不同的获得 L ED 显示屏显示所需的点阵信息的方法: 运用屏幕截取 获得设备无关位图方法和汉字字库方法, 并通过 V isua l C + + 编程实现。 关键词: 汉字字库; 设备无关位图; V isua l C + + 中图分类号: T P391 文献标识码: B 文章编号: 1002- 2279 ( 2004) 04- 0033- 03
in t y, in t W id th, in t nH eigh t, CDC 3 p ScrDC, in t xScr, in t yScr, DW O RD dw Rop ) 可以把一个 DC 中 的位图传送到另一个 DC 中。 该函数使用 3 种操作 对象: 源位图、 目标位图、 刷子。W indow s 可以实现