1、第五章第五章 中文信息处理中文信息处理内容内容 汉字字形概述 字形描述技术 字形的压缩和还原 字形的放大和缩小 TTF字形技术 字库的设计和管理技术 汉字字库的应用 5.1 5.1 汉字字形概述汉字字形概述 汉字字形及其特点 字形、字型和字形库 字形描述技术及其种类5.1.1 5.1.1 汉字字形及其特点汉字字形及其特点 汉字字形指的是汉字形体结构的图像。汉字字形的特点:汉字的字形呈方块形汉字从字形上可以分成各种结构汉字字形的分解方法和分解标准尚未统一,常用的字形分解方法一般从单字、字根、笔画(或笔形)和形素这四个层次入手。5.1.2 5.1.2 字形、字型和字形库字形、字型和字形库 字形:字
2、符的一个实例。有的时候,几个字符可以合成一个字形,例如美元符号:一个“S”形状加上一根竖线:一个“S”形状加上一根割断的竖线:一个“S”形状加上两根竖线:一个“S”形状加上两根割断的竖线:汉字的字形更加复杂,我国制定了一系列的国家标准来严格定义各种字符集中字符的字形。5.1.2 5.1.2 字形、字型和字形库(续)字形、字型和字形库(续)字型:某一个字体的实例,如某个特定的磅值。西文的印刷字型有:serif sans serif script中文使用的主要字型有:宋体 仿宋体 楷体 黑体5.1.2 5.1.2 字形、字型和字形库(续)字形、字型和字形库(续)西文字型和中文字型的对应关系 西文字
3、型西文字型中文字型中文字型SerifSong(宋体)Sans serifHei(黑体)ScriptKai(楷体)OtherFangsong(仿宋体)5.1.2 5.1.2 字形、字型和字形库(续)字形、字型和字形库(续)字形库中存储的是某个集合所有字符的字形信息。实际上,字形库是一个计算机的存储器系统,它的设计、管理和使用原则上与计算机存储器系统是一致的。5.1.3 5.1.3 字形描述技术及其种类字形描述技术及其种类 字形描述技术是以数字代码描述字的形状,在输出版面的时候,由计算机将代码还原,恢复字原来的形状,由输出设备输出。字形描述技术也被称为字形压缩还原技术。字形描述技术的水平高低,不仅
4、决定了输出字的速度、字形美观和输出效果,同时也影响到:字库存储空间字形还原的计算量5.1.3 5.1.3 字形描述技术及其种类(续)字形描述技术及其种类(续)字形描述技术描述一般可分为:点阵字形描述技术轮廓矢量字形描述技术曲线轮廓字形描述技术5.2 5.2 字形描述技术字形描述技术 点阵字形描述技术 轮廓矢量字形描述技术 曲线轮廓字形描述技术 其他字形描述技术5.2.1 5.2.1 点阵字形描述技术点阵字形描述技术 汉字点阵的规模一般是:m2n m2n 在一般情况下,16 16点阵和24 24点阵使用的比较多。随着激光印字机、激光照排机、图文记录机等输出设备分辨力的提高,又有了48 48、96
5、 96、128 128、256 256、512 512、1024 1024的点阵字库。下面以16 16点阵介绍点阵字形描述的方法。5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续)把一个方块横向分成16格,纵向也分成16格,形成256个小方格,即该矩阵有256个“点”。每一个点可以有黑、白两种颜色。用这样的点阵覆盖到汉字上,凡是与笔画重叠的点,规定它是黑色;凡是不与笔画重叠的点,规定它是白色。5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续)汉字“啊”的点阵字形 汉字“啊”点阵字形数字化表示 5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续
6、)一个汉字点阵字形的存储量:16 16:256位,即32个字节24 24:72个字节32 32:128个字节5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续)横向点阵:每个点阵数字代码均描述汉字横向点的情况。数字代码是顺序从左到右、自上而下扫描点阵各点状态而形成的。一般适用于显示器。纵向点阵:每个点阵数字代码均描述汉字纵向点的情况。数字代码是顺序从上到下、自左至右扫描点阵各点状态而形成的。一般适用于打印机 5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续)16 16横向点阵的情况 5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续)汉字“啊”
7、用横向点阵来表示,其数字代码是:00H、04H、2FH、7EH、F9H、04H、A9H、04H、AAH、14H、AAH、7CH、ACH、54H、AAH、54H、AAH、54H、A9H、54H、E9H、74H、ADH、54H、0AH、04H、08H、04H、08H、14H、08H、0CH5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续)16 16纵向点阵的情况 5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续)汉字“啊”用纵向点阵来表示,其数字代码是:3FH、F0H、20H、20H、7FH、F0H、20H、00H、7FH、FFH、42H、10H、4DH、88H
8、、70H、70H、00H、00H、47H、F0H、44H、20H、4FH、F2H、44H、01H、FFH、FFH、40H、00H、00H、00H 5.2.1 5.2.1 点阵字形描述技术(续)点阵字形描述技术(续)各种精度的点阵字形其特点和用途:16 16(简易型)24 24(普通型)32 32(提高型)其他更高精度的点阵字形5.2.2 5.2.2 轮廓矢量字形描述技术轮廓矢量字形描述技术 轮廓矢量字库的出现是为了改进点阵字库锯齿状轮廓,同时也是因为绘图机用笔输出的需要而发展起来的一种字形描述技术。轮廓矢量的字形描述技术的核心是用多条直线逼近字形,并进行封闭处理,字形效果明显改观。5.2.2
9、5.2.2 轮廓矢量字形描述技术(续)轮廓矢量字形描述技术(续)轮廓矢量字形描述技术的直角坐标系 5.2.2 5.2.2 轮廓矢量字形描述技术(续)轮廓矢量字形描述技术(续)5.2.2 5.2.2 轮廓矢量字形描述技术(续)轮廓矢量字形描述技术(续)轮廓字库解决了点阵字库缩放后失真的问题。这种字形描述技术对汉字横平竖直的字形有很好的描述效果,但对于撇、捺、点,以及圆弧装饰效果的字体,仍然不能十分逼近字形,而且字体放大之后,轮廓仍然具有折线感。在大的点阵做成的矢量轮廓字库缩小到很小或小的点阵做成的矢量字放大得很大时,都会带 来失真。因此大号字用256256点阵为基础的矢量轮廓,而小号 字仍用96
10、96或128128点阵为基础的矢量轮廓。5.2.3 5.2.3 曲线轮廓字形描述技术曲线轮廓字形描述技术 曲线轮廓字库是以二次曲线和三次曲线逼近字形轮廓的字形描述方法。其中以PostScript字形描述技术为代表。PostScript字形描述技术是用美国Adobe公司的PostScript页面描述语言来描述字形的一种技术。其特点是以贝塞尔曲线(Bezier curve)拟合文字形状,比较完整地保留了文字原有的字形信息。5.2.3 5.2.3 曲线轮廓字形描述技术(续)曲线轮廓字形描述技术(续)解决字形质量的失真问题:特征参数:对用直线、二次曲线或三次曲线描述字形轮廓的字形描述技术的一种补充。智
11、能复原:依靠字形复原软件的判断和处理来保证字形复原的质量,而字形描述本身不包含很多的特征信息。5.2.3 5.2.3 曲线轮廓字形描述技术(续)曲线轮廓字形描述技术(续)PostScript Type 1语言中的特征参数:字符级特征参数:hstem/vstem:给出水平/垂直笔段的位置和宽度。hstem 3/vstem 3:给出等距等宽的三个平行笔段的位置和宽度。字库级特征参数:StdHW,StdVW,StemSnapH,StemSnapV:给出字库中字符的标准笔画宽带,或者笔画宽度的跳跃变化,参数为宽度值的数组。BlueValues:给出西文字形的准线位置,参数为准线位置的数组。5.2.3
12、5.2.3 曲线轮廓字形描述技术(续)曲线轮廓字形描述技术(续)部分笔画水平段的情况 5.2.3 5.2.3 曲线轮廓字形描述技术(续)曲线轮廓字形描述技术(续)笔锋高度的测量 5.2.3 5.2.3 曲线轮廓字形描述技术(续)曲线轮廓字形描述技术(续)字库中每个汉字的特征参数生成完毕以后,还要添加合适的字库级特征参数,主要包括:笔画标准宽度StdHW/StdVW笔画宽度的跳跃变化StemSnapH/StemSnapV5.2.3 5.2.3 曲线轮廓字形描述技术(续)曲线轮廓字形描述技术(续)比较有影响的PostScript西文字库有:Type 1Type 3Type 5 国内用PostScr
13、ipt语言描述的轮廓字体只有以Type 1 和Type 3的格式做出的字库。5.2.3 5.2.3 曲线轮廓字形描述技术(续)曲线轮廓字形描述技术(续)用PostScript技术描述汉字时,在字符笔画过大、字又太细长时,软件为了要显示所有黑色笔画就会忽略笔画间的空白,造成笔画重叠、比例变形等问题。对于低分辨力的输出设备(如显示器和针式打印机),这种字库的输出效果反倒不如点阵字库优越,即使增加大量的特征参数描述也得不到较大的改善。因此也采用字库中包含点阵字库用于输出小字号文字的变通方法。5.2.4 5.2.4 其他字形描述技术其他字形描述技术 TrueType字库。微软公司协助苹果公司开发并于1
14、990年底推出TrueType字库。这种字库放弃以三次曲线逼近字形轮廓的优点,而采用二次曲线逼近字形轮廓。TrueType字库有精心设计的特征参数处理。Folio字库。在Unix作站的领域中,有Sun公司的Folio字库技术。由于Sun工作站在美国广泛用于社团和专业用的出版系统,因此Folio F3字形描述格式也是值得一提的字形描述技术。智能字库(Intellifont)。由爱克发计算机国际公司开发,用于惠普系列激光印字机。5.3 5.3 字形的压缩和还原字形的压缩和还原 什么是字形的压缩和还原 字形点阵的压缩和还原 轮廓矢量字形的压缩方法 其他字形压缩技术5.3.1 5.3.1 什么是字形的
15、压缩和还原什么是字形的压缩和还原 对于正式出版物来说,文字分辨率需29.2线/毫米以上。因此,最常用的五号汉字点阵为108 108,特大号字则为576 576。不同精度的点阵表示一个汉字需要的字节数:48482889696115212812820482K25625681928K5125123276832K1024 1024131072 128K5.3.1 5.3.1 什么是字形的压缩和还原(续)什么是字形的压缩和还原(续)512512点阵字库GB2312字符集宋体、楷体、黑体、仿宋体4种字体字库容量是845.375M 10241024点阵字库GB2312字符集宋体、楷体、黑体、仿宋体4种字体字
16、库容量是3381.5M5.3.1 5.3.1 什么是字形的压缩和还原(续)什么是字形的压缩和还原(续)字形信息压缩技术应满足以下几方面要求:字形信息压缩技术不允许信息压缩后丢失或发生错误,也就是说压缩信息能正确再现原字形信息,否则在文字复原时将会引起字形畸变。字形信息压缩过程应当简便易行,并且可用专门的软件和硬件自动完成,便于用户独立进行缺字补充的操作。由文字字形压缩信息向最终输出的点阵字形信息的转换应当迅速可靠。压缩效果显著。5.3.1 5.3.1 什么是字形的压缩和还原(续)什么是字形的压缩和还原(续)追求压缩效果和文字复原速度这两个指标是相互冲突的,因为压缩倍率越高,字形复原过程就越复杂
17、,复原工作量也越大,文字还原速度也就越慢。事实上,任何字形信息的压缩方法都是以损失文字复原速度和输出速度为代价而换来存贮空间的节约的。评价一种字形压缩技术的优劣,不仅要看信息压缩倍率的高低,而且还要看是否能做到快速复原。不能进行快速文字复原的字形压缩方法是不实用的。5.3.2 5.3.2 字形点阵的压缩和还原字形点阵的压缩和还原黑白段表示法黑白段表示法是考虑到汉字笔画中黑白连续变化的特点而产生的压缩方法。压缩时计算机逐行地数取点阵中的空白点数(白段)和非空白点数(黑段),按一定格式相间地记录下一串数字构成行点阵信息。同样也可用重复行数来压缩相邻的重复行信息。行标志重复行数白段黑段白段黑段 *N
18、 W1 B1 Wn Bn5.3.2 5.3.2 字形点阵的压缩和还原(续)字形点阵的压缩和还原(续)线性增量表示法 采用黑、白段信息格式,保留上述的竖直压缩,增加一种新的压缩格式。线性增量表示法用以处理汉字笔画中大量存在的斜线。在一行黑、白段记录信息的后面再注明线段的增量,这样下一行的黑、白段长度在上一行的基础上按增量的大小作相应的变化。5.3.2 5.3.2 字形点阵的压缩和还原(续)字形点阵的压缩和还原(续)行标志重复行数白段白段增量黑段黑段增量*N W1 W1 B1 B1白段白段增量黑段黑段增量 Wn Wn Bn Bn用增量记录的行数要超过两行(n大于2),压缩才有意义。第1行是不考虑增
19、量值的黑、白段信息,最后一行是加上相应增量后的黑、白段信息,中间的n-2行的黑白段长段均在上一行的长度基础上,加上线性增量来补齐的。5.3.2 5.3.2 字形点阵的压缩和还原(续)字形点阵的压缩和还原(续)考虑10241024点阵字库,如采用黑白段表示法得到一行信息:“*2 1024 0”,则表示?如果相邻行不相同的概率为50%,平均每行有5个黑段,则一个汉字的字形信息有:(1+1+10*2)*1024*(100%-50%)=11K国内早期在蒙纳激光照排系统中使用一种13801380点阵的字库,1种字体就要约2000MB的存储量。采用这两种压缩方法以后,这个系统的黑体、宋体、仿宋体、楷体4种
20、字体的字库总存储量约为65MB。5.3.3 5.3.3 轮廓矢量字形的压缩方法轮廓矢量字形的压缩方法规则笔画:横、竖、折。规则笔画主要由直线段、起笔笔锋、收笔笔锋和转折笔锋等构成。笔锋总共可以分成7种,因此在宋体横这一笔画的压缩表示中,用3位表示收笔笔锋的号码(06),其余的信息将指示横的起始点的x、y坐标,横的长度、宽度以及有无起笔笔锋等。这样宋体的一笔横需34字节便可精确描述而丝毫不失真。笔画竖也是如此,起笔笔锋用3位信息来表示,收起笔锋用2位信息来表示,其余的信息则表示起点坐标、竖的长度和宽度,此外还用1个字节来详细描述笔画左、右倾斜的情况,这样描述宋体的竖需要5个字节。5.3.3 5.
21、3.3 轮廓矢量字形的压缩方法(续)轮廓矢量字形的压缩方法(续)不规则笔画:点、撇、捺、钩 对不规则笔画,用向量折线对轮廓曲线作一般性的描述。为了减少数位的浪费,使压缩信息更加紧凑,采用增设控制字节的方法,按下述规则对之进行装配:5.3.3 5.3.3 轮廓矢量字形的压缩方法(续)轮廓矢量字形的压缩方法(续)若控制字节的头两位为11,则该字节其余6位与下一节合起来,指示不规则笔画起始点的x、y坐标。7654321011笔画起始点的x坐标x7笔画起始点的y坐标5.3.3 5.3.3 轮廓矢量字形的压缩方法(续)轮廓矢量字形的压缩方法(续)若控制字节的头两位为10,表示所指示的向量的x、y的绝对值
22、中至少有一个大于等于16,此时控制字节的末6位与下一字节合起来表示该向量的x、y的数值,数值以原码表示。7654321010向量的xx7向量的y5.3.3 5.3.3 轮廓矢量字形的压缩方法(续)轮廓矢量字形的压缩方法(续)N7654321001向量的个数N象限|x|y|象限|x|y|若控制字节的头两位为01,表示后面N个向量的x、y绝对值均小于8,N由控制字节的最末5位指示。后面N个向量中的每个向量用一个字节表示,其中2位指示该向量所处的象限,3 位指示x的绝对值,3位指示y的绝对值。5.3.3 5.3.3 轮廓矢量字形的压缩方法(续)轮廓矢量字形的压缩方法(续)N7654321000象限向
23、量的个数N|x|y|x|y|若控制字节的头两位为00,表示后面N个向量处于同一象限,且x、y的绝对值均小于16。N由控制字节的最末4位表示,控制字节的中间2位指明象限,后面N个向量都由一个字节表示,其中4位指示x的绝对值,4位指示y的绝对值。5.3.3 5.3.3 轮廓矢量字形的压缩方法(续)轮廓矢量字形的压缩方法(续)在采用了上述的进一步压缩的措施之后,1个五号汉字字形信息平均需要120字节来记录,而记录1个五号汉字字形点阵信息大约需用1400多个字节,因此单字的平均压缩倍率大约为12倍。由于五号字最常用,且非变倍字形的恢复速度也最快,故系统字库中只存入五号字的字形压缩信息,而其余字号均由计
24、算机通过五号字字模变倍得到。目前的计算机汉字出版系统上中宋体、黑体、仿宋体、楷体、报宋体、小标题宋体几种字模的压缩信息,存储量约为5MB,字模总体压缩倍率在500倍左右。5.3.3 5.3.3 轮廓矢量字形的压缩方法(续)轮廓矢量字形的压缩方法(续)字形压缩信息与最终输出的点阵字形信息,这两种数据之间存在着“结构冲突”。“次序冲突”:字模压缩信息以笔画为序,规则笔画在前,不规则笔画在后,一笔信息完毕再有另一笔信息;而输出点阵信息则是从左至右,一行完了再开始新的一行,二者的次序关系完全不同。“边界冲突”:字模压缩信息以笔画划分内部信息的边界,而最终要输出的点阵信息以行划分边界,二者的边界完全不同
25、。5.3.4 5.3.4 其他字形压缩技术其他字形压缩技术 骨架向量法:又称笔画骨架法。用能够表示汉字笔画特征的线段,作为组成汉字字形的最基本元素的字形表示法。可用下列数据来表示:(15,1E)、(80,8D)(F5,FE)、(1D,FD)5.3.45.3.4 其他字形压缩技术(续)其他字形压缩技术(续)部件组字法:抽取汉字的共性,以最少量的部件和笔画作为基本字元来组织出尽可能多的汉字字形,这就是所谓的组字技术。组字技术并非信息压缩技术。汉字字形压缩法还有:无失真向量拟合法、曲线参数拟合法、笔画函数叠加法、轮廓特征分析法、复合压缩法、递推偏差拟合法、折线法、叠加法字形压缩、哈夫曼综合处理法等。
26、5.45.4 字形的放大和缩小字形的放大和缩小 汉字的字号 字形放大和缩小的基本原理 防止字形放大和缩小失真的措施 字形放大缩小的应用5.4.15.4.1 汉字的字号汉字的字号 书版宋体、报版宋体、标题宋体、仿宋体、黑体和楷体这六种字体,均以五号字为基本字号。字模存储器中只存放五号字的压缩信息,其余字号都由五号字变倍而得。基本字体还可以通过拉长和压扁的变倍方法变化出各种长字体和扁字体。5.4.25.4.2 字形放大和缩小的基本原理字形放大和缩小的基本原理字形在放大和缩小时,也分为规则笔画和不规则笔画这两种情况来处理。无论使规则笔画还是不规则笔画,都是用轮廓折线表示的,它们很容易被放大缩小。例如
27、,要使得图形放大r倍(这里r不一定是整数),只需把对应的每段轮廓折线放大r倍,也即对每条折线的x、y值都乘以r。要得到高质量的放大或缩小的字形,需要采取一系列的措施来防止在变倍过程中的失真。5.4.35.4.3 防止字形放大和缩小失真的措施防止字形放大和缩小失真的措施 1.防止字形变倍时的舍入误差积累。变倍时舍入误差的积累 5.4.35.4.3 防止字形放大和缩小失真的措施(续)防止字形放大和缩小失真的措施(续)结点变倍方法,用下面的公式获得变倍后的x、y(变倍率=r):AB折线的x=B点的x坐标 A点的x坐标=(B点x坐标 r)(舍入)-(A点x坐标 r)(舍入)AB折线的y=B点的y坐标
28、A点的y坐标=(B点y坐标 r)(舍入)-(A点y坐标 r)(舍入)*这里(p)(舍入)表示p经过四舍五入后取整数值。5.4.35.4.3 防止字形放大和缩小失真的措施(续)防止字形放大和缩小失真的措施(续)2.保证规则笔画宽度的一致性。对于规则笔画横、竖、折的宽度部分,不采用结点变倍法,而按下述公式计算:变倍后的宽度=(变倍前宽度 r)(舍入)5.4.35.4.3 防止字形放大和缩小失真的措施(续)防止字形放大和缩小失真的措施(续)3.规则笔画与不规则笔画衔接部分的处理笔画勾的下延伸 A点的A点由直线变倍得到,而对应B点的B点由结点变倍得到。这样,AB直线本来是直的,但变倍后的AB折线可能变
29、成向左或向右倾斜一格的斜线。可采取以下措施克服此失真:当延伸的第一笔原x=0,则变倍后永远使这一笔的x=0。5.4.35.4.3 防止字形放大和缩小失真的措施(续)防止字形放大和缩小失真的措施(续)4.小号字横的宽度的控制和笔锋的细致描述。字号缩小很小时,在变倍过程中会引起某些部分变得过分密集,尤其当一个字内横的数量很多时。在横的压缩信息中,用两位二进制数细致刻画横宽。5.4.45.4.4 字形放大缩小的应用字形放大缩小的应用 点阵方法描述的字形在缩放时采用插值加线或抽线的方法,会产生严重变形或以质量损失为代价。可以采用平滑技术使锯齿边的台阶缩小或用斜边代替锯齿。但是无论平滑技术如何好,所产生
30、的字形因锯齿或折线而产生的不平滑感只能缩小而不能排除。5.4.45.4.4 字形放大缩小的应用(续)字形放大缩小的应用(续)轮廓矢量方法是为了改进点阵字形在缩放时会出现锯齿状轮廓而产生。在文字复原时,通过对向量的长度进行变倍放大或缩小,便可获得不同的字号。如果在变倍时对x方向和y方向分别选不同的倍率,还可以获得变形长体字或扁体字。轮廓字库在还原时需经特定的运算将这些用轮廓描述的字形转化成点阵方式,再由输出设备输出。这个运算可以在输出设备内进行,也可在计算机上先转换成位图再输出。5.4.45.4.4 字形放大缩小的应用(续)字形放大缩小的应用(续)轮廓字库解决了点阵字库缩放后失真的问题。这种字形
31、描述技术对汉字横平竖直的字形有很好的描述效果,但对于撇、捺、点,以及圆弧装饰效果的字体,即使是缩小直线距,仍然不能十分逼近字形,而且字体放大之后,轮廓仍然具有折线感。由于近年来硬件的迅速发展,有能力用二次曲线或三次曲线代替直线描述字形轮廓的字库。5.55.5 TTF TTF字形技术字形技术 什么是TrueType TrueType的基本原理 TrueType字体文件结构 TrueType的特点和优势 TrueType的应用 OpenType的出现5.5.15.5.1 什么是什么是TrueTypeTrueType TrueType是Apple公司和Microsoft公司合作开发的PDL(Page
32、 Description Language)语言TrueImage中的字形描述部分。TrueType有一套专门的指令集,用于完成字形的描述、特征参数的描述及其他一些描述。它用的轮廓描述曲线是二次B-样条(Bezier-spline)函数。5.5.25.5.2 TrueType TrueType的基本原理的基本原理 TrueType字体对字形的描述是轮廓描述,在轮廓上有一串结点组成,这些结点有on-line和off-line两种属性来描述一个封闭的轮廓线。TrueType对字形轮廓上的结点都给出一个编号,其顺序是按顺时针方向走一圈,即填黑的部分永远在其右边。5.5.25.5.2 TrueType
33、 TrueType的基本原理(续)的基本原理(续)TrueType字库中的主要特征参数在X方向上有5个关键距离值:字身最左边的起始点到字母主干的空间;字母主体部分的宽度;字身的宽度(西文字母字身不等宽);字母主干(stem)的宽度;字母衬线(serif)的大小。在Y方向上:字母横干(crossbar)的厚度;字母衬线的厚度;字母主体的高度;字母横干的高度。5.5.25.5.2 TrueType TrueType的基本原理(续)的基本原理(续)在变倍时用数学方法将相同的特征参数值同等定义,在任何字号下都同等还原,这时考虑的是字体各特征点的形状,而不考虑坐标格的修整。TrueType的字形文件不单
34、单由轮廓数据而且还有用TrueType指令写的程序,TrueType的字形包括指令和数据及TrueType字形发生器。5.5.35.5.3 TrueType TrueType字体文件结构字体文件结构TrueType字体文件总体结构:文件头(12 Bytes)描述表目录(每个16 Bytes)描述表数据5.5.35.5.3 TrueType TrueType字体文件结构(续)字体文件结构(续)文件头共12B:Fixedsfnt_version/TTF文件版本号码(0 x00010000)USHORTnumTables/描述表数目USHORTsearchRange/描述表快速查找范围USHORTe
35、ntrySelector/描述表入口选择USHORTrangeShift/范围调整5.5.35.5.3 TrueType TrueType字体文件结构(续)字体文件结构(续)描述表目录。其目录个数由numTables决定,每个目录项16B:ULONGtag/描述表名称(4 Bytes)ULONGcheckSum/描述表内容的校验和ULONGoffset/此描述表的位置偏移(从文件头开始)ULONGlength/描述表字节长度5.5.35.5.3 TrueType TrueType字体文件结构(续)字体文件结构(续)常用的TTF文件描述表共有19个,其中有10个为每个TTF文件所必须包含的,其他
36、的9个可根据需要任选。10个必须的描述表:cmap字符代码到文字序号的映射表 glyf文字轮廓数据 head文件头信息 hhea水平度量头信息 hmtx水平度量信息 loca字符轮廓数据位置索引 maxp最大值描述 name名字表 postPostScript打印机控制 OS/2OS/2和Windows度量信息5.5.35.5.3 TrueType TrueType字体文件结构(续)字体文件结构(续)9个可选的描述表:cvt 控制值表 fpgm定义程序区 hdmx水平设备度量 kern紧排控制 LTSH线性门限 prepCVT程序区 WIN 保留 VDMX垂直设备度量 FOCA保留5.5.45
37、.5.4 TrueType TrueType的的特点特点和优势和优势 TrueType的特点是:TrueType既可作打印字体,又可以用作屏幕显示。由于它是由指定字形进行描述,因此它与分辨率无关,输出时总是按照打印机的分辨率输出。无论放大或缩小,字符总是光滑的,不会有锯齿出现。相对PostScript字体来说,其质量要差一些。特别是在文字太小时,表现得不是很清楚。5.5.45.5.4 TrueType TrueType的特点和的特点和优势优势 由于TrueType技术本身的特点而使它具有以下优势:真正的所见即所得效果支持字体嵌入技术,保证文件的跨系统传递性操作系统平台的兼容性ABC字宽值精确的
38、字体轮廓描述品种繁多的字体家族5.5.55.5.5 TrueType TrueType的应用的应用 TTF字体的创建:使用已有的TTF字体编辑软件。TTF字体在面向对象程序中的引用:Windows使用LOGFONT结构定义字体文件的属性。此结构可以在程序中直接引用。程序片断。5.5.65.5.6 OpenTypeOpenType的出现的出现 为了解决“前后端不一致”的问题,微软和Adobe公司联合推出了一种新的通用字体格式OpenType(简称OTF)。OpenType集中了TrueType和Type 1两种字形描述技术的特点,是一个开放、无版权的字形描述技术。5.5.65.5.6 OpenT
39、ypeOpenType的出现(续)的出现(续)OpenType字体格式能达到以下目的:更宽的多平台支持;更好的支持国际字符集;更强的字体数据保护;字体文件更小,有利于提高发送效率;为先进的字体印刷控制提供更多的支持。5.65.6 字库的设计和管理技术字库的设计和管理技术 汉字字库的基本要求 汉字库性能的评测 汉字库结构的设计 点阵字库的制作5.6.15.6.1 汉字字库的基本要求汉字字库的基本要求 汉字库的设计应该追求三项目标:字形质量高读取速度快系统开销小 它们之间的关系是:随着字形点阵数的增加,字形失真就越小;但字形库容量会增大,也就意味着字形库成本增加,字形点阵存取速度下降。5.6.25
40、.6.2 汉字库性能的评测汉字库性能的评测汉字库的性能主要包括访问字库的速度v和字库的内存开销m,v和m分别与汉字库的性能成正比和反比关系。用k参数来描述汉字库的性能:k=(v v0)/m式中v为输出模块用此汉字库后所能达到的输出汉字平均速度,m为汉字库的内存开销,v0为输出模块应具备的输出汉字的起码平均速度,v0的取值决定了k参数描述的有效范围。5.6.25.6.2 汉字库性能的评测(续)汉字库性能的评测(续)进一步分析v与m之间的关系后,用下式表示:v=m f(s)w式中s为GB2312的全集,f为确定其子集作为汉字库常驻内存部分的法则,w为其它因素。欲提高k参数,必须寻求f(s)的最佳情
41、况。由于中文信息处理系统的使用环境不是静态的,因此采用静态汉字库结构不可能进一步获得较高的k参数,而必须考虑动态汉字库结构,以适应动态的使用环境。5.6.35.6.3 汉字库结构的设计汉字库结构的设计 输出模块实际是将汉字内部码转换成对应的汉字字形信息。可以用下面的公式表示这一过程:y=f(x)其中x为汉字内部码,y为汉字字形信息,f为输出模块的转换处理。汉字库在中文信息处理系统中占有相当重要的地位。5.6.35.6.3 汉字库结构的设计(续)汉字库结构的设计(续)静态汉字库:全内存型字库 访问速度快,但占用大量的内存资源。全外存型字库 响应速度较慢,只能满足一般用户的使用要求。内外存结合型字
42、库 可达到既减小内存开销,又保证访问速度的目的。实践证明具有较高的效率和较好的性能。5.6.35.6.3 汉字库结构的设计(续)汉字库结构的设计(续)动态汉字库:准动态型字库 由静态汉字库中的内外存结合型字库改进而成。访问这种汉字库的算法。称不上真正的动态型字库。自适应型字库 分为内存字库和外存字库两个部分 内存字库中的内容由系统根据使用环境进行自动调整,是一种真正的动态型字库。多级型字库 多级型字库是对自适应型字库的改进。设计了三级汉字库,分别是常用字库、动态字库和外存字库。5.6.45.6.4 点阵字库的制作点阵字库的制作 要做到造字迅速、准确、直观和修改方便,必须使用计算机辅助设计。关键要有点阵字形的显示,修改和存储,即要有一个造字软件。造字时软件在终端屏幕上画出放大的栅格,然后利用键盘严格按字模移动光标打点、画线,最后完成一个汉字的输入。5.6.4 5.6.4 点阵字库的制作(续)点阵字库的制作(续)点阵字形设计基础是点阵字稿的设计。在进行字稿设计时,应该充分注意下述六个方面:结构端正、重心平稳均匀足格、大小一致偏旁组合、比例协调、上下对准、左右平衡粗细黑白、灵活掌握笔画舒展自然部首归类,相对统一,灵活套用5.7 5.7 汉字字库的应用汉字字库的应用 造字程序的使用 安装新字体本本 章章 结结 束束