freetype
freetype
FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。
软件简介
支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。
下面是 FreeType 提供的特性的一个不完全列表:
1. FreeType 为访问字体文件提供了一套统一的、独立于字体文件类型的、简单而易用的API。另外,一些特别类型的API可以用来访问字体文件里的特殊数据。
2. 与大多数同类的字库不同,FreeType 生来就支持类似TrueType 或者 Type 1的可缩放字体类型,并且可以将字体的大纲数据(控件介绍/提示)返回给各户应用程序。
3. FreeType 的设计是基于模块的,这些模块可以在编译时被静态链接到库中或者在运行时根据需要加载。模块可以用来支持特殊的字体格式,或者甚至是新的符号图像类型!
4. FreeType 特意使用嵌入式系统编写,这意味着它不使用静态可写数据(也就是说,它可以直接从ROM中运行),这样客户程序就可以只为他们自己提供内存管理和输入/输出流的实现。
5. 客户程序自己的输入/输出流可以使你轻易地使用相同的API读取基于ROM或被压缩的或远程的字体文件。多个流实现可以并行的被一个FreeType 实例使用。
6. 你可以只编译那些你的嵌入式工程或环境需要的模块,从而有效的减小FreeType 的代码大小。
7. FreeType 默认支持下面的字体类型:
- TrueType 字体(集合)
- Type 1 字体
- CID-keyed Type 1 字体
- CFF 字体
- OpenType fonts (包括 TrueType 和 变体CFF )
- SFNT-based bitmap 字体
- X11 PCF 字体
- Windows FNT 字体
- BDF 字体 (包括反走样类型的)
- PFR 字体
- Type 4 字体 (有限支持)
8. 通过一个给定的字形轮廓,FreeType 有能力产生一个高质量的单色位图或一幅使用年 56阶灰度的不走样的像素图。这比Windows 9x/98/NT/ 000 或 FreeType 1使用的5阶灰度像素图要好得多。
9. FreeType 支持 TrueType 和 OpenType 规格定义的全部字符映射。同时,它也完全有能力自动合成Type 1 使用的那种Unicode字符表,这种表要求必须把一个那种令人头痛的供转换编码时使用的结束符放置在标的末尾——这在Type 1 使用的那种格式中是很常见的(当然,如果你需要,那种原始的编码方式也是可用的)。
10. FreeType 的核心API提供了对访问字形名或调整数据中字符间距这样的高级信息的函数支持。
11. 一个完整且有效率的TrueType字节码解释器。这个引擎可以用很小的点产生极好的输出。由于TrueType规格极其令人费解且十分含糊,这个组件想要成功完成输出是极其困难的。但无论如何,我们现在已经能使Windows的显示质量达到麦金塔的水平。
12 . 对于那些不需要或不希望为TrueType字体使用字节码解释器的人,我们开发了我们自己的自动提示模块。这种模块过去也曾被一些可缩放的字体使用过。
13. FreeType 可以产生一些相似的字体引擎无法产生的信息,例如字距调整的位距、字符名、垂直度量之类的。由于它模块化的设计,可以很方便地通过可选的API更改FreeType库来提供另外的针对特定字体类型的信息。(例如,一个可选的API用来检索TrueType 和 OpenType 字体的SFNT表。
14. 自从 .0.1版发布开始,FreeType 开始提供它自己的超高速缓存子系统。可以利用它缓存可变实例或字形图像,使它们拥有更高的效率。
FreeType在两个自由软件许可证的授权下发布:GNU通用公共许可证或者以及一个类BSD许可证。1999年,FreeType项目被苹果公司通知FreeType侵犯TrueType字体微调相关专利。之后,FreeType被默认停用或者围绕专利相关技术开发。 010年5月起,所有与字体微调相关的有冲突的软件专利被解除,允许FreeType的TrueType字体微调引擎开放源代码使用。 013年奥多比给FreeType项目捐赠了一个CFF(Compact Font Format,PostScript字体)渲染引擎,在 .5版被加入并默认启用。
发展历程
FreeType项目始于1996年,由大卫·特纳(David Turner)创造,最初目的是渲染TrueType字体。FreeType 1只支持TrueType字体格式,但包含了一个扩展来支持OpenType文本排版功能。FreeType .0版于 000年发布,带来完全重写的代码以使之模块化,支持更多字体格式,并且演化出被开发者称为“更精简且更强大”的源代码。FreeType 不与FreeType 1兼容,但开发者声称从FreeType 1转移到FreeType 表现出的难度很小。FreeType 1的OpenType文本布局功能的进一步演化形式用在了Pango文本布局库。HarfBuzz项目进一步发展出有着完全重写的内容的所需特性作为独立的库,带有比Pango的许可证略为严格的授权。
功能与服务
FreeType被广泛应用于多个平台和项目中。Android使用FreeType作为字体渲染引擎。苹果公司IOSMac OS中使用FreeType,仅次于Apple Advanced Typography。Sun公司在 007年将OpenJDK这个Java开发工具包中的专有字型栅格化引擎变更为FreeType。索尼playstation 3、PlayStation 4及PlayStation Vita的控制台中搭载FreeType。ReactOS使用FreeType作为字体渲染程序。此外,FreeType也被现代电子游戏及用于Wii的欧朋浏览器用作栅格化引擎。gdipp及MacType专案把Windows的字型栅格化引擎以FreeType取代,显示其在字体渲染领域的广泛应用和影响力。
参考资料
目录
概述
软件简介
发展历程
功能与服务
参考资料