TrueType字形技术小览

上传人:宝路 文档编号:17051614 上传时间:2017-11-10 格式:DOCX 页数:5 大小:95.10KB
返回 下载 相关 举报
TrueType字形技术小览_第1页
第1页 / 共5页
TrueType字形技术小览_第2页
第2页 / 共5页
TrueType字形技术小览_第3页
第3页 / 共5页
TrueType字形技术小览_第4页
第4页 / 共5页
TrueType字形技术小览_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《TrueType字形技术小览》由会员分享,可在线阅读,更多相关《TrueType字形技术小览(5页珍藏版)》请在金锄头文库上搜索。

1、TrueType 字形技术小览2011010* 热动* *目前计算机字体技术中主要有点阵字体和矢量字体(曲线轮廓字体)两种。众所周知,点阵字体具有非常好的清晰性和美观性并且显示速度快,特别是在小字号的情形下常用作显示字库;但其缺点就是点阵字体不能无极缩放,特别是放大一定倍数后很容易产生文字边缘的锯齿。而曲线轮廓字体则比较完美的解决了无极缩放的问题,是点阵字体几乎完美的替代品,目前的曲线轮廓字体中比较有名的是 Adobe 公司开发的 Type1 字体和 Microsoft和 Apple 共同开发的 TrueType 字体,另外的就是 Type1 和 TrueType 之争的最终产物OpenTyp

2、e 字体。说起字体的无极放大问题,我们有必要讨论一下两种类型的字体的记录方式。点阵字体顾名思义就是记录字符上每个点(像素)的信息,将每个字符看成一张图片并像保存图片一样保存在计算机中。例如,把每一个汉字都分成 1616 或 2424 个点,然后用每个点的虚实来表示汉字的轮廓。这样的话,基本上记录了原来字形所有的信息,显示的时候也像显示图片一样,所以显示的字形非常美观、不易失真。但是若要放大的话,点阵字体的缺点就显现出来了,随着放大倍数的增加,点阵中点的个数会呈平方性增长,而原来记录的点数是有限的,多出的点的信息只能靠原来附近的点的信息来近似模拟,这样不可避免的会出现边缘的锯齿化;就像一张数码照

3、片放大以后局部边缘会失真一样。最初,弥补的措施是将常用的不同字号的字分别采样然后保存在电脑中。当保存的点阵字体的字号越多的时候,文件的大小就会越来越大。特别是遇到汉字等象形文字时,点阵字体真的是无能为力。因为汉字不像西文只有有限的字母,每个汉字的独一无二要求将每个汉字采样然后点阵化进入计算机,同时每个汉字还需要几种字号,这样下来文件的大小几乎是不可想象的。这样便发展出了曲线轮廓字体,将字符的外形看成某几个函数的图像,然后将函数的解析式分别记录下来,当然一起记录下来的还有字符的高度、宽度、定位信息、填充信息等等。相当于点阵字体是单纯地用照相机将字形照下来,显示的时候计算机直接将“照片”给你看;而

4、曲线轮廓字体则是告诉计算机这个字符是通过怎样的方式画出来的,显示的时候计算机会“现场” 将其画出来。这样,放大字体的工作就变成了函数解析式的简单变换,当需要多种字号时也仅仅是更改一下相关参数而已,故实现了无极放大的功能;同时,汉字等象形文字的数字化录入也成为了可能。作为曲线轮廓字体,TrueType 字体是采用二次贝塞尔曲线来描述一个字符的轮廓,从字形的要求来说,只要保证轮廓的光滑即可,这从数学上来看就是一阶导数是连续的即可,这样只要二次以上的函数都能满足要求,TrueType 的二次贝塞尔曲线是最低程度地满足了这个要求。接触过 photoshop 的朋友都知道, photoshop 中的钢笔

5、工具可以用简单的手段产生平滑的曲线,钢笔工具其实用的就是贝塞尔曲线。贝塞尔曲线(Bzier curve)是 1962 年由法国工程师皮埃尔贝塞尔 (Pierre Bzier)所广泛发表的在电脑图形学中具有相当地位的参数曲线。给定点 P0、P 1、P n,其贝塞尔曲线即:。以 t 为参数,在 XY 坐标系下,上述公式则是描述了一条起始于 P0,结束于 Pn,并且受 P1Pn-1 影响的一条曲线;其中 P0 和 Pn 叫做锚点,P 1Pn-1 称为控制点。TrueType 字形应用的是二次贝塞尔曲线,即 ,从数学上很容易得知,该曲线起始于起始于 P0,结束于 P2,并且直线 P0P1 切曲线于 P

6、0,直线 P1P2 切曲线于 P2,如图 2 (a)所示。通常情况下 , 控制点不止一个, 对多个控制点的情况 , 由于 True Type 仍然使用二次 Bzier 曲线, 其处理方法以图 2 (b)为例说明如下 : 取控制点 P1, P2 的中点P12 作为一个控制点, 则 P0, P1, P12 三点构成了如图 2 (a)所示的情形, 仍用上述的处理方法就可以得到一段实际轮廓曲线。接下来, 又将 P12 作为 P0, P2 将作为 P1, 按照以上原则处理下去, 最后得到了整条轮廓曲线。TrueType 的字形就是由若干个封闭的轮廓曲线构成的,录入时对每个字符建立坐标系,并对其的轮廓进行

7、切割,成为一段段的贝塞尔曲线并筛取锚点和控制点进行存储,并附带各种必要信息。图 3 中, 0 和 1 点是在线控制点, 2 点为不在线控制点, True Type 对字形轮廓上的控制点都给出一个编号, 编号按照顺时针的方向进行排列。在 True Type 类型的字体中, 曲线的记录是通过记录这些点的坐标来实现的。一般的 TrueType 的字体文件的后缀名是 *.TTF,他们一般存放在系统盘WINDOWSFonts 里。TTF 文件是用树形的表组织起来的,由 3 个部分组成: 文件头、描述表目录和一系列的描述表。其中文件头为 12 个字节, 分别表示文件版本号、描述表数目、描述表快速查找范围、

8、入口选择、范围调整等信息; 文件头后紧跟描述表目录 , 每个目录项长度为 16 个字节, 包含描述表名称、描述表内容的校验和、描述表的偏移地址及描述表字节长度等; 最后是各个具体的文件描述表, 包括字符编码的查找方法、轮廓数据的描述方法等信息。以下是 TTF 文件中文件头和描述表目录的结构体定义:typedef struct Fixed sfntversion; /*目前所用版本皆为 1.0 版本,故此值为 0x10000*/ USHORT numTables; /*该字体中表的数目*/ USHORT searchRange; USHORT entrySelector; USHORT rang

9、eShift; TableEntry entriesi; /*保存着具体的表,i = numTables*/ TableDirectory;typedef sturct CHAR tag4; /*资源标记*/ ULONG checkSum; /*校验位*/ ULONG offset; /*表在 TrueType 结构体中的偏移量 */ ULONG length; /*每个表的大小*/ TableEntry;文件描述表则是 TTF 文件中的核心内容,记录了有关字形的全部信息。常用的 TTF 文件描述表共有 19 个, 其中 10 个是必备的, 其它 9 个是可选的表。以下是常见的文件描述表中表名

10、、表明说明和解释信息。表名 表名说明 表名解释head 字体头 字体的全局信息cmap 字符代码到图元的映射 把字符代码映射为图元索引glyf 图元数据 图元轮廓定义以及网格调整 指令maxp 最大需求表 字体中所需内存分配情况的 汇总数据mmtx 水平规格 图元水平规格loca 位置表索引 把图元索引转换为图元的位 置name 命名表 版权说明、字体名、字体族 名、风格名等说明hmtx 水平布局字体水平布局星系:上高、下高、最大前进宽度、最小左支撑、最小右支撑kerm 字距调整表 字距调整对的数组post PostScript 信息所有图元的 PostScript FontInfo 目录项和

11、 PostScript名PCLT PCL 5 数据HP PCL 5Printer Language 的字体信息:字体数、宽度、X 高度、风格、记号集文件描述表中以代码映射表 cmap 、轮廓数据索引表 loca 、轮廓数据表 glyf 最为重要。TTF 字库本身有一个排列字模的顺序, 一般并不与系统字符编码相同, 所以用 cmap 表来作为系统字符编码到字模序号的映射, 用来标志不同的平台和字符集。 loca 表给出了每个字符的轮廓描述信息在 glyf 表中的偏移位置和长度。glyf 表是 TrueType 文件的主体部分, 用于存放所有的轮廓描述信息, 包括描述字形轮廓的数据信息和修正字形轮

12、廓的指令信息两部分, 数据信息包含一系列的轮廓点坐标, 构成字符的原始轮廓, 指令信息则对原始轮廓进行修正。那么,系统是如何将 TTF 字体显示在屏幕上的呢?大致上,首先 TrueType 解释器会根据字符 Unicode 编码, 通过查找 c map 表得到映射偏移量, 再从 loca 表获得对应字符轮廓数据在 glyf 表中的存放地址, 读出 glyf 表中的轮廓信息及指令信息就可以生成高质量的 True Type 字形。有些双字节代码不对应任何字符, 则 camp 表将它们统统映射为loca 表中的序号 0 , 称为丢失字符, 其对应轮廓数据往往显示出来是空心方框。例如,汉字“啊”的显示

13、具体上为,查找 GB2312 一 80 的” 啊”字的内码形式是“BOAI”,系统通过CMAP 表查找字体文件中“BOAI”转换成“啊” 字数据所在位移,然后取出数据还原成要求的大小输出。前面提到过点阵字体的显示速度快、在不缩放的情形下质量优良,是一种良好的显示字体。它可以弥补 TTF 字体的渲染速度较慢、小字号的情形下字体可能失真的缺陷。Windows 系统就有几套汉字点阵显示字库支持优美的汉字屏幕显示。TrueType 字库在Windows 系统中可以索引点阵的显示字库 ,TrueTyPe 解释器在要求的大小和点阵大小一样时,就取出点阵字库进行显示。TTF 字形有很多优点,同时不可避免的有

14、它的缺点,例如对于汉字来说,文件大小仍然比西文大 10 倍或者更多。但是对于计算机这个有着鲜活生命力的行业来说,技术的进步是日新月异,从当初不能放大的点阵字到现在可以无极缩放、任意填充的曲线轮廓字也经历了不过十几年时间;今后的字形技术中文件会如何小巧、渲染会如何迅速、字形会如何美观,我们拭目以待。参考文献:1杜伟. True Type 字形技术简介J. 印刷杂志,1994,06:6-10. 2闻申生. 字形技术的现状和趋势 兼谈 Windows 平台字型技术 TrueTypeJ. 电子出版,1995,02:36-40. 3吴海辉,樊庆林,王虎. TrueType 字体技术的研究分析与应用J. 电脑知识与技术( 学术交流),2007,03:783-784+794. 4任保献. TTF 文件分析与使用J. 安阳师范学院学报,2003,05:28-29.5 维基百科. 贝塞尔曲线. http:/zh.wikipedia.org/wiki/%E8%B2%9D%E5%A1%9E%E7%88%BE%E6%9B%B2%E7%B7%9A6百度文库. 关于 TrueType 字体的结构. http:/ GUI 原理 4 - 矢量字体. http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号