FreeType

来自Local Chinese Wikipedia
跳转到导航 跳转到搜索

Template:NoteTA

  1. REDIRECT Template:Expand language

脚本错误:没有“Infobox”这个模块。脚本错误:没有“Check for unknown parameters”这个模块。

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

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

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

功能[编辑]

字体微调[编辑]

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

文件格式[编辑]

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

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

历史[编辑]

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

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

大规模重写的2.0[编辑]

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

专利冲突[编辑]

1999年Freetype项目被苹果公司通知FreeType脚本错误:没有“ilh”这个模块。TrueType字体微调相关专利。之后Freetype被默认停用或者围绕专利相关技术开发。因此像FreeBSDLinux之类的一些开放源代码项目包含禁用或者阉割字体微调的FreeType以避开苹果持有的软件专利[12]

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

CFF引擎捐赠[编辑]

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

用户[编辑]

Android
FreeType在Android用作字体渲染引擎。[16]
苹果公司
苹果在iOS[16]macOS[17]中使用FreeType,仅次于脚本错误:没有“ilh”这个模块。
Java
2007年,Sun公司在OpenJDK这个Java开发工具包中将专有的字型栅格化引擎变更为FreeType。[18]
PlayStation
索尼于PlayStation 3[19]PlayStation 4[20]PlayStation Vita[21]的控制台中搭载FreeType。
ReactOS
FreeType用作ReactOS的字体渲染程序。[22]

其他[编辑]

MacType控制面板窗口
MacType控制面板窗口

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

参见[编辑]

脚本错误:没有“Portal”这个模块。

参考资料[编辑]

  1. Template:Cite web
  2. 2.0 2.1 Template:Cite web
  3. Template:Cite web
  4. Template:Cite web
  5. 5.0 5.1 5.2 5.3 Template:Cite web
  6. Template:Cite web
  7. 引用错误:<ref>标签无效;未给name(名称)为history的ref(参考)提供文本
  8. Template:Cite web
  9. Template:Cite web
  10. 10.0 10.1 Template:Cite web
  11. Template:Cite web
  12. 12.0 12.1 Template:Cite web
  13. Template:Cite web
  14. Template:Cite web
  15. Template:Cite web
  16. 16.0 16.1 Template:Cite web
  17. Template:Cite web
  18. Template:Cite web
  19. Template:Cite web
  20. Template:Cite web
  21. Template:Cite web
  22. Template:Cite web
  23. 游戏公司遗迹娱乐在他们的游戏Dawn of War及Company of Heroes当中使用FreeType,以其在载入屏幕方面视为可靠。
  24. FreeType也被用于《A Treehouse of My Own》及《Julie Saves The Eagles》之类的PC版Template:Le游戏。
  25. Wii上的Opera 9控制台使用FreeType,可以通过能以下列途径在Wii中搜寻到的Third-party information页面找到:Internet Channel > Operations Guide > About > Opera 9 for Wii — Third-party information
  26. Template:Cite web
  27. Template:Cite web

外部链接[编辑]

Template:Free and open-source typography