FreeType是一个用C语言实现的一个字体光栅化函式库。它可以用来将字符栅格化并映射成点阵图以及提供其他字体相关业务的支持。

Quick Facts 开发者, 首次发布 ...
FreeType
开发者大卫·特纳、罗伯特·威廉、维纳尔·伦贝尔[1][2]以及其他FreeType贡献者
首次发布1996年,​28年前​(1996[3]
当前版本
  • 2.13.3(2024年8月12日;稳定版本)[4]
编辑维基数据链接
源代码库 编辑维基数据链接
编程语言C
操作系统跨平台
类型字体光栅化
许可协议GNU通用公共许可证FTL许可证
网站https://www.freetype.org/
Close

FreeType并不提供API以执行更高级的功能,如文字布局或图形处理(例如彩色文本渲染、“空洞化”等)。然而,它提供了一个简单、易用并统一的接口来访问字型文件的内容,从而极大地简化了这些任务。它支持各种字体格式,包括TrueTypeType 1、以及OpenType

FreeType在两个自由软件许可证的授权下发布:GNU通用公共许可证或者以及一个类BSD许可证。因此这个函式库能够使用于任何类型的项目中,无论其是否是专有软件。同时也包括正在使用的主要自由桌面系统软件。

功能

字体微调

TrueType
TrueType 字节码直译器于2.4.0版默认启用,[5]TrueType次像素微调支持于2.4.11版实现。[6]
PostScript
Dave Arnold的新的CFF解析及微调引擎于2.4.12版加入,[7]2.5.0.1版默认启用。
Auto-hinter
Auto-hinter于FreeType 2.1.10中以auto-fitter取代。[8]新的用于中日韩字体的算法于FreeType 2.2中加入,基于Akito Hirai的补丁。[9]

文件格式

Adobe的新型SING字型包格式于FreeType 2.2中加入。[9]TrueType字体"head"表格当中的Bit 1于FreeType 2.2中得到支持。[9]对SFNT cmap 13表格格式的支持于2.3.10中加入。[10]对带有SFNT封装的OpenType Collection及CFF字体的支持于2.4.11版加入。[6]

PostScript
针对AFM文件的追踪性字距调整于FreeType 2.2中加入。[9]

历史

FreeType于1996年由大卫·特纳(David Turner)创造,用以渲染TrueType字体,包括一个处理TrueType字节码的解析器。最初以Pascal语言编写,1997年由罗伯特·威廉(Robert Wilhelm)移植到C语言。随后维纳尔·伦贝尔(Werner Lemberg)加入开发组并维护Freetype至今。[3][11][12]

FreeType 1只支持TrueType字体格式,但包含了一个扩展来支持OpenType文本排版功能。

大规模重写的2.0

FreeType 2.0版于2000年发布,带来完全重写的代码以使之模块化。FreeType 2带来对更多字体格式的支持,并且演化出被开发者称为“更精简且更强大”的源代码。[13]FreeType 2不与FreeType 1兼容,但开发者声称从FreeType 1转移到FreeType 2表现出的难度很小。[13]然而由于文本布局处理不是FreeType 2的目标,FreeType 1的OpenType文本布局功能在FreeType 2中被移除。FreeType 1的OpenType文本布局功能的进一步演化形式用在了Pango文本布局库。HarfBuzz项目进一步发展出有着完全重写的内容的所需特性作为独立的库,带有比Pango的许可证略为严格的授权。[14]

专利冲突

1999年Freetype项目被苹果公司通知FreeType侵犯英语Patent infringementTrueType字体微调相关专利。之后Freetype被默认停用或者围绕专利相关技术开发。因此像FreeBSDLinux之类的一些开放源代码项目包含禁用或者阉割字体微调的FreeType以避开苹果持有的软件专利[15]

2010年5月起,所有与字体微调相关的有冲突的软件专利被解除,[15]允许FreeType的TrueType字体微调引擎开放源代码使用。许多禁用该引擎的系统提供选项来让用户启用。Fedora中,freetype-freeworld从专有的yum资源库转移到自由资源库[16]

CFF引擎捐赠

2013年Adobe给FreeType项目捐赠了一个CFF(Compact Font Format,PostScript字体)渲染引擎,在2.5版被加入并默认启用。[17][18]

用户

Android
FreeType在Android用作字体渲染引擎。[19]
苹果公司
苹果在iOS[19]macOS[20]中使用FreeType,仅次于Apple Advanced Typography英语Apple Advanced Typography
Java
2007年,Sun公司在OpenJDK这个Java开发工具包中将专有的字型栅格化引擎变更为FreeType。[21]
PlayStation
索尼于PlayStation 3[22]PlayStation 4[23]PlayStation Vita[24]的控制台中搭载FreeType。
ReactOS
FreeType用作ReactOS的字体渲染程序。[25]

其他

Thumb
MacType控制面板窗口

在被多数自由桌上型系统软体使用的同时,FreeType也被现代电子游戏[26][27]及用于WiiOpera用作栅格化引擎。[28]gdipp[29]MacType[30]专案把Windows系统的字型栅格化引擎以FreeType取代。

参见

参考资料

外部链接

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.