这两天在看矢量字库相关文档,整理下。
收集知识:
1.
汉字库是任何汉字操作系统的重要组成部分。字库又有点阵字库、矢量字库和曲线字
库之分。矢量字库又分为单线体、笔划轮廓体、纯轮廓体、多线体。矢量字库是以图形信
息建库的,每个汉字由若干笔划或笔划的连通体组成,库中存放的即是这些线段的端点坐
标, 由于每个笔划的折线数不一样,每个字的笔划数也不同+汉字在库中所占的长度是不
相等的。因此定位方法与点阵字库定位方法不同。汉字字形输出时,经常进行各种变换,如
平移、缩放、旋转、倾斜、投影等,利用矢量或曲线字库,算法简单、速度快、失真小,因
此效果好,可以产生高质量的汉字输出。所以,目前流行的汉字操作系统如ucDOs3.x、A—
CIOS3.X、xsdos6.OF等均采用矢量字库存储汉字字形数据
2.矢量字库的总体结构
矢量字库共分三个区域,它们是:(1)索引表区 该区共有6768个表项,每个表项由
6个字节构成,前4个字节表示该表项对应汉字字形在库中的绝对偏移地址,后两个字节为
组成该汉字字形数据的字节数。(2)空白区:该区每个字节为0。(3)字形数据区:在字形
数据区中,存放各汉字的字形数据,字形数据由若干笔划数据构成,每个笔划数据由一个
多边形构成,其数据组织表现为多边形起点以及标识符和相邻点问的相对位置,字形数据
以压缩形式存贮。
3.数据区结构及字形还原算法
在数据区中采用压缩算法描述字形数据,每个汉字字形由若干笔划数据构成,每个笔
划数据由一个多边形构成,每个多边形由一个起点字节及该多边形相邻点字节构成 。 其结
构如下:
汉字字形— — E 数据 —‘ —Llr相起邻点字掌节 构成每个笔划多边形的数据中,起点字节也是终点字节,其余字节是与前一字节上下文相关字节,存贮了压缩标识符、位移方向和位移量 标识码op占两位,位于字节的高端
即7、6位,共有4种状态:00、01、10、11,每种状态后面跟随不同的编码。
思路大概是:
1.获取矢量字库
2.获取对应字的图形信息:字符在字库中的对应的offset 位置,起点位置,相邻点的位置等 比如一撇,可以由几个点连起来
3.
将矢量字库中字模的信息(起点,相邻点,方向)通过算法导入到一个128*128的buf中,即形成一个点阵。
4.将128*128的点阵画出来。
后续完善。。。
相关有用文章:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。