前⾔
本⽂旨在介绍⽂字渲染需要了解的基本知识点,以及些许延伸扩展;不涉及到实际代码的编写,不涉及具体算法实现,但中间穿插引⽤的外部⽂档有部分代码实现可供参考。
本文引用的图都是来源网络博文,部分图片并未记录来源。如涉及侵权请联系我。
字体发展历史
- 在 Macintosh 电脑中,使用点阵字体(格式后缀:bdf、pcf、fnt、hbf等)。点阵字体放大后会出现锯齿、模糊的情况。
- 在同一时期,Adobe 发明了基于 PostScript Type 1 的矢量字体格式,但 Type 1 字体是加密的,Adobe 通过售卖字体认证赚取利润,苹果也不得不向 Adobe 购买 Type 1 字体认证。
- 于是,苹果决定设计全新的字体格式,最后在 1991 年发布为 TrueType 格式,同时也包括 Times Roman、Helvetica、Courier 等大量字体。
- 但是 TrueType 字体反响并不好,因为大部分用户已经购买了 Adobe Type 1 字体,没必要再切换。因此,苹果联合微软对抗 Adobe,授权给微软使用 TrueType 字体。1991年,微软在 Windows 3.1 系统上支持了 TrueType,并和 MonoType 公司联合开发了大量著名字体,例如 Arial 等字体。
- 1994 年,微软独自开发了 TrueType Open 字体;1996 年 Adobe 加入开发,兼容了 Type1 字体格式,更名为 OpenType。2007 年,OpenType 被国际标准组织 (ISO)采用。OpenType 常见后缀 otf、ttf、ttc。
- 2023年,Adobe 将停止支持 Type 1 字体创作。
SFNT:SFNT 是苹果在开发 TrueType 字体格式时设计的通⽤字体数据存储结构,SFNT 是 spline font 或者 scalable font 的缩写,TrueType、OpenType、WOFF 等格式都采⽤ SFNT 作为容器。
WOFF:Web Open Font Format,采⽤压缩格式,字体⽂件更⼩,适合⽹⻚使⽤。可以简单理解为 OpenType + 压缩。⼀般⽐ ttf 字体⼩ 40%。WOFF2 是 WOFF 的下⼀代标准,在 WOFF 的基础上提⾼ 30% 的 压缩率。