-
?正点原子】i.mx6u嵌入式linux驱动开发指南v1.4中的点阵字库偏移计算
资源介绍
2.4 点阵字库偏移计算
在使用点阵字库时,需要先计算出字符在字库中的偏移,然后根据这个偏移
在字库中查找出对应的字符。在计算偏移量时,分为ACSII点阵和汉字点阵。
2.4.1 ACSII字符点阵偏移量计算
若添加的信息为常见英文字母、数字、符号等,可采用ASCII码点阵。如何
寻找字符在ASCII字库中的偏移量,采用方法如下:
点阵字库中的字符排序是符合ASCII顺序的,而每个字符长度为:len=(字符
长*字符宽)/8个字节的长度(如8*16点阵为:8*16/8=16),因此,将要打印的字
符与每个字符长度len相乘,便得到这个字符在字库中的位置了,即偏移地址,
这个位置之后的len个字节的数据就是这个字符了。(对于数组方式存放而言,
数组基地址加上这个偏移地址就是要打印字符的基地址)
如:在8x16 ASCII点阵中,字母“A”,十六进制地址是0x41,他与
16(0x10)相乘,得到0x410,这个地址就是字母“A”在ASCII码8*16点阵字库
中的地址,该地址所指向的16字节的数据便是字母“A”。
2.4.2 汉字点阵偏移量计算
常用的汉字点阵字库是符合GB2312标准的点阵字库,如HZK16(16x16)、
HZK24(24x24)等等。在GB2312标准中对收入的汉字进行了“分区”处理,每区含
有94个汉字/符号,这种表示方法称为区位码。
计算汉字在字库中偏移量时,采用的方法叫区位码计算法。在GB2312标准
中,每个汉字由两个字节进行编码表示。其中,前一个字节为该汉字的区码,后
一个字节为该汉字的位码,区码/位码的计算方法如下:
● 区码:汉字的第一个字节-0xA0(因为汉字编码是从0xA0区开始的)
- 上一篇: ffmpeg视频解码和编码代码实例
- 下一篇: 设置合理的视角-pt100换算表