[原创]提取汉字点阵数据的相关知识

作者在 2008-02-26 09:02:02 发布以下内容

        提取汉字点阵,一般是用于液晶屏显示,因为现在的液晶一般都是点阵式的,只要能获得汉字的点阵,就可以在液晶上显示所需的汉字,这样将极大的方便用户使用仪器和仪表.

        这样就需要知道如何提取汉字点阵的数据,这些数据保存在系统的字库中

        汉字字库分为两种,点阵字库和矢量字库,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字体中字模信息

默认分类 | 阅读 12708 次
文章评论,共0条
游客请输入验证码