- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TrueType字体原理简介TrueType是由Apple公司和Microsoft公司联合提出的一种新型数学字形描述技术。它用数学函数描述字体轮廓外形,含有字形构造、颜色填充、数字描述函数、流程条件控制、栅格处理控制、附加提示控制等指令。TrueType采用几何学中二次Bezier曲线及直线来描述字体外形轮廓,特点是:TrueType既可作打印字体,又可用作屏幕显示;由于它用指令对字形进行描述,因此它与分辨率无关,输出时总是按打印机分辨率输出。因为二次函数导函数的连续性,所以无论放大或缩小,字符总是光滑的,不会有锯齿出现。但相对PostScript字体来说,其质量要差一些。特别是在文字太小时,就表现得不是很清楚,下面就TrueType技术作一点简单的介绍。一、字体的轮廓实现TrueType字体标准的主要思想是将所有的文字看成是一些相互独立的图像区域的组合,这些图像区域由一条封闭的曲线围成,而这条曲线由一些相互联系的点构成。由此,要记录一个文字, 只需记录这个文字的图像区域, 进而只需记录曲线, 最后只需记录构成这些曲线的点的相对坐标就可完成对文字的记录和处理。在一个TrueType类型的字体中,文字图像的形状是由它们的外围线来描述的。这些外围线形成了一系列的图像域。一个简单的文字可能只有一个图像域,而大部分的文字可能包含两个甚至更多的图像域。而一些控制字符因为不可见,从而没有图像域。例如,字符‘7’由一条闭合曲线组成,所以它只包含一个图像域;而字符‘i’由两条闭合曲线组成,所以它包含两个图像域,而字符‘B’则由三条闭合曲线组成,所以它包含三个图像域。在TrueType字体文件中,每个字符的图像域的轮廓线由直线和曲线组成,每一条曲线可由一系列的二次Bezier曲线组成。字形的轮廓是由一串有序控制点组成,控制点有在线上和不在线上两种属性。这些控制点通过二次Bezier曲线来决定实际的轮廓曲线,图1(a)是最简单的二次Bezier曲线的模型。其中,P0、P2点是实际轮廓曲线必须通过的点,P1点为不在线控制点。实际轮廓曲线上的点P的坐标P(x(u),y(u))由如下公式决定:x(u)=x0+2(x1-x0)u+(x2-2x1+x0)u2y(u)=y0+2(y1-y0)u+(y2-2y1+y0)u2其中,P0(x0, y0)、P1(x1, y1)、P2(x2, y2)分别是P0、P1、 P2点的坐标;u为参数,取值范围为0≤u≤1。图1图2通常情况下,控制点不止一个,对多个控制点的情况,由于TrueType仍然使用二次Bezier曲线,其处理方法以图1(b)为例说明如下:取控制点P1, P2的中点P12作为一个控制点,则P0P1P12三点构成了如图1(a)所示的情形,仍用上述的处理方法就可以得到一段实际轮廓曲线。接下来,又将P12作为P0P2将作为P1,按照以上原则处理下去,最后得到了整条轮廓曲线。TrueType的字形就是由若干个封闭的轮廓曲线构成的。图2中,0和1点是在线控制点,2点为不在线控制点,TrueType对字形轮廓上的控制点都给出一个编号,编号按照顺时针的方向进行排列。在TrueType类型的字体中,曲线的记录是通过记录这些点的坐标来实现的,这必然就涉及到坐标系的建立和确定。在数字化一个字体的时候,一个关键性的决定就是坐标系的选择与确定。这样,构成闭合曲线的所有的点就可以通过该坐标系被描述出来,并且成为一个位置确定的点。在TrueType字体中,坐标系是一个二维平面坐标系。X坐标表示的是点的水平位置,Y坐标表示的是点的垂直位置,坐标系原点为(0, 0)。需要注意的是该坐标系不是一个无限平面,每一个点的坐标范围必须在-16384至16383之间。在不同的系统分辨率下,这个范围可能会更小。每一种文字的坐标系位置的选择也是不确定的,这是由设计人员自己决定的。由于不同的输出设备有不同的分辨率,所以,在不同的分辨率下如何保持各点间的相对位置不变也是需要解决的一个问题。TrueType字体通过点坐标和象素之间的相互转换,保证了在不同输出设备上不出现变形等问题,使得TrueType字形显示可以真正做到“所见即所得”。二、字体的填充Microsoft和Apple公司未公开TrueType字形的填充技术,而常用的填充技术有两种方法:(1)绕数填充法:Windows提供采用绕数填充法的多边形充填函数。但用于直接补偿 Bezier曲线的矢量字库的实际算法时,达不到要求的输出质量,特别是输出大于零号字符时,绕数填充法将无法满足输出质量。(2)递归法填充:递归法的方法是,填充时从填充点出发,向四周扩散,直到碰到边界为止。具体地说,字符的边界值是不同的。先得到填充点的值,然后依次比较填充点的上、下、左、右四点的值,相同值则填充一点,否则就是边界,再从
文档评论(0)