打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
字库注意事项

下面以HZK16文件为例,分析取得汉字点阵字模的方法。

   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点阵的汉字总共需要16*16/8=32个字节表示。字模的表示顺序为:先从左到右,再从上到下,也就是先画左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,右边8个点,依此类推,画满16×16个点。  

对于其它点阵字库文件,则也是使用类似的方法进行显示。例如HZK12,但是HZK12文件的格式有些特别,如果你将它的字模当作12*12位计算的话,根本无法正常显示汉字。因为字库设计者为了使用的方便,字模每行的位数均补齐为8的整数倍,于是实际该字库的位长度是16*12,每个字模大小为24字节,虽然每行都多出了4位,但这4位都是0(不显示),并不影响显示效果。 还有UCDOS下的HZK24S(宋体)、HZK24K(楷体)或HZK24H(黑体)这些打印字库文件,每个字模占用24*24/8=72字节,不过这类大字模汉字库为了打印的方便,将字模都放倒了,所以在显示时要注意把横纵方向颠倒过来就可以了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
点阵字模原理与读取
(4)汉字的显示方法与汉字字模的提取[ZT]
C语言中显示汉字 - 青春正长 - 青春正长 - 和讯博客
hzk16的介绍以及简单的使用方法
汉字的ASC值为什么会是负数
汉字任意点阵字库制作软件,多国语言点阵字库制作软件,汉字点阵,民航电子客票打印,民航客户管理软件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服