提取汉字点阵,一般是用于液晶屏显示,因为现在的液晶一般都是点阵式的,只要能获得汉字的点阵,就可以在液晶上显示所需的汉字,这样将极大的方便用户使用仪器和仪表.
这样就需要知道如何提取汉字点阵的数据,这些数据保存在系统的字库中
汉字字库分为两种,点阵字库和矢量字库,UCDOS中使用的是点阵字库,而Windows中采用的是矢量字库
点阵字库只能表示固定大小和固定字体的汉字,其实相当于一幅汉字的图片了,什么都不能改变,在DOS时代,这样已经是完全够用了,但是在Windows时代,汉字的表现变得丰富多彩了,如果使用点阵字库,将肯定无法满足需求,因此Windows采用了矢量字库,其大小,字体等均是可变的.目前的Window使用的是TrueType字库(简称TT,Windows中字库文件的扩展名TTF就是TrueType Font的缩写),有关TT的资料,可参考:百度百科:字库
提取点阵字库的方法:
UCDOS的字库有12*12,16*16,24*24三种,一般比较好找的是12和16点阵的,24点阵的字库我没找到.需要提取这些点阵的数据,必须根据汉字的区位码来读取.原理和提取方法见:汉字编码和输出显示原理
另附一个读取12*12点阵汉字库的C源程序
C源文件.rar(107 KB)
提取矢量字库的方法:
实际上,由于矢量字库的强大功能,一般的字模软件(也就是汉字点阵提取软件),都是读取矢量字库.因此需要着重介绍一下提取矢量字库.
我们实际上想获得的是汉字的点阵数据(因为液晶屏是点阵型的),而矢量字库中储存的是一些曲线的数据,不能象点阵字库一样直接读取就能显示.如果想读取矢量数据,然后画图,涉及到的知识比较复杂,所以一般采用间接的方式,就是先设置字号,字体,加粗,斜体等,然后将这个字显示到位图上,之后通过读取位图的各点数据,来获得汉字的点阵数据.
下面提供一个VB间接读取点阵数据的例子
(程序正在测试,稍后添加)
下面是两个来自CSDN的C源码,
请教如何获取字体的点阵信息?
如何得到某种字体下指定大小某字符的点阵?
可能有用的几个API:TextOut, GetTextExtentPoint32, CreateFont
利用API直接取得点阵的方法:
API:GetGlyphOutline
相关文章:
如何取得字符点阵数据
(急盼赐教)使用getGlyphOutline取得的位图应如何使用?
如何利用windows的系统字库生成点阵字库?
根据所选择的 TrueType 字体生成点阵数据
【转载】从TTF字体中字模信息