labView取字模

来源:互联网 发布:魔灵召唤淘宝买成品号 编辑:程序博客网 时间:2024/06/05 14:15

预备知识 ::::汉字的点阵字模是从点阵字库文件中提取出来的。例如常用的16×16点阵HZK16文件,12×12点阵HZK12文件等等,这些文件包括了GB 2312字符集中的所有汉字。 

HZK16文件是按照GB 2312-80标准,也就是通常所说的国标码或区位码的标准排列的。国标码分为 94 个区(Section),每个区 94 个位(Position),所以也称为区位码。其中01~09 区为符号、数字区,16~87 区为汉字区。而 10~15 区、88~94 区是空白区域。   如何取得汉字的区位码呢?在计算机处理汉字和ASCII字符时,使每个ASCII字符占用1个字节,而一个汉字占用两个字节,其值称为汉字的内码。其中第一个字节的值为区号加上32(20H),第二个字节的值为位号加上32(20H)。为了与ASCII字符区别开,表示汉字的两个字节的最高位都是1,也就是两个字节的值都又加上了128(80H)。这样,通过汉字的内码,就可以计算出汉字的区位码。 

 具体算式如下: 
  qh=c1-32-128=c1-160 wh=c2-32-128=c2-160   或    
  qh=c1-0xa0 wh=c2-0xa0    qh,wh为汉字的区号和位号,c1,c2为汉字的第一字节和第二字节。 

  根据区号和位号可以得到汉字字模在文件中的位置:   location=(94*(qh-1)+(wh-1))*一个点阵字模的字节数。 
使用16×16点阵。字模中每一点使用一个二进制位(Bit)表示,如果是1,则说明此处有点,若是0,则说明没有。这样,一个16×16点阵的汉字总共需要16*16/8=32个字节表示。

字模的表示顺序为:先从左到右,再从上到下,也就是先画左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,右边8个点,依此类推,画满16×16个点。 

现在开始做:

首先是获取字体文件的路径并打开相应的文件;

然后获取  输入的文本 以字符串的形式并转换成u8数组 进行循环遍历整个数组 取出每个字符的区位码

从相应位置读取数据,然后转换成布尔数组,数组重新排列,即可产生对应的汉字 字模。

PS:本程序添加了列队的相关函数 方便和其他模块数据交换,

PS:本程序只考虑了输入为汉字的情况,对其它情况没做处理。仅供参考。


0 0
原创粉丝点击