字符的点阵显示原理及实现

字符的点阵显示原理及实现

ID:38857981

大小:201.26 KB

页数:3页

时间:2019-06-20

字符的点阵显示原理及实现_第1页
字符的点阵显示原理及实现_第2页
字符的点阵显示原理及实现_第3页
资源描述:

《字符的点阵显示原理及实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、字符的点阵显示原理及实现武汉大学遥感信息工程学院,屈伟军首先介绍什么是点阵字库。需要理解的是,点阵字库是一个数据文件,在这个数据文件里面保存了所有字符的点阵数据。至于什么是点阵,我想大家都知道。如果使用过“文曲星”之类的电子辞典,在那个液晶显示屏上就可以明显地看出“点阵”的痕迹所在。PC机上也是如此,字符是由点阵来组成的,不同的是PC机显示器的显示分辨率更高,高到了我们肉眼无法区分的地步,因此“点阵”的痕迹也就不那么明显了。点阵从本质上讲就是单色位图,它使用一个比特位来表示一个点,如果某个比特位为0,表示该位置没有

2、点,如果为1则表示该位置有点。那么点阵字符的数据存放细节到底是怎么样的呢?其实十分简单,举个例子最能说明问题。比如说16×16的字符点阵,一行有16个点,需要用16个比特即2个字节来存放。第一行的前八个点的数据存放在点阵数据的第一个字节里面,第一行的后面八个点的数据存放在点阵数据的第二个字节里面,第二行的前八个点的数据存放在点阵数据的第三个字节里面……以此类推。一个点阵共有16行,这样我们马上就可以计算出存放一个点阵总共需要2×16=32个字节。看看下面这个图形化的例子:0000000100000000000000

3、00000001000000000000000010100010101010101010101000000000000000010000000000000000010000000000001000000000001000000000001000000000000001010000000100000000000100000000000000001000000010000000001000000000000000000000010000010000000100000000000000000000100000001000

4、00100000000000000000000100000000000100010000000000000000101010000000000000100000000000000000000001000000000001000100000000000000000000100000000010000000100000000000000000010000000100000000000100000000000000001000001000000000000010101000000000000000010000000000

5、00000001000000000000000000000000000000000000000000可以看出这是一个宋体“汉”字的点阵,我们可以写出这个点阵的点阵数据是:0x40,0x08,0x37,0xfc,0x10,0x08……当然,写这个确实很麻烦,所以我不再继续下去。我这样做,只是为了说明在点阵字库中,每一个点阵的数据就是按照这种方式存放的。当然也存在着不规则的点阵,这里说的不规则,指的是点阵的宽度不是8的倍数,比如12×12的点阵(如图2所示)。那么这样的点阵数据又是如何存放的呢?其实也很简单,每一行的前

6、面8个点存放在一个字节里面,每一行剩下的4个点也使用一个字节来存放。也就是说,剩下的4个点将占用一个字节的高4位,而这个字节的低4位没有使用,全部都为0。这样做当然显得有点浪费,不过却能够便于我们进行存放和寻址。对于其他不规则的点阵,也是按照这个原则进行处理的。这样我们可以得出一个M×N的点阵所占用的字节数为(M+7)/8×N。图1字符“我”的12×12点阵在明白了点阵字符的存放结构以后,我们很容易就可以写出一个显示任意大小的点阵字符的函数。接下来的问题就是如何在汉字库中寻址某个汉字的点阵数据。要解决这个问题,首先

7、需要了解汉字在计算机中是如何表示的。在计算机中英文可以使用ASCII码来表示,而汉字使用的是扩展ASCII码。所谓扩展ASCII码,也就是把ASCII码的最高位由0变为1的ASCII码,简单的说就是码值大于等于128的ASCII码。一个汉字由两个扩展ASCII码组成,第一个扩展ASCII码用来存放区码,第二个扩展ASCII码用来存放位码。在GB2312-80标准中,将所有的汉字分为94个区,每个区有94个位可以存放94个汉字,形成了人们常说的区位码,这样总共就有94×94=8836个汉字。在点阵字库中,汉字点阵数据

8、就是按照这个区位的顺序来存放的,也就是最先存放的是第一个区的汉字点阵数据,在每一个区中又是按照位的顺序来存放的。在汉字的机内码中,汉字区位码的存放是在扩展ASCII码的基础上进行的,存放时将区码和位码都加上了32,然后分别存放在两个扩展ASCII码中。具体的说就是:第一个扩展ASCII码=128+32+汉字区码第二个扩展ASCII吗=128+32+汉字位码如

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。