FreeType

用於將文字繪製到點陣圖與其他字型相關操作的軟體開發函式庫

FreeType是一個用C語言實現的一個字体光栅化函式庫。它可以用來將字符柵格化並映射成點陣圖以及提供其他字體相關業務的支持。

FreeType
開發者大衛·特納、羅伯特·威廉、維納爾·倫貝爾[1][2]以及其他FreeType貢獻者
首次发布1996年,​28年前​(1996[3]
当前版本
  • 2.13.2 (2023年8月25日;穩定版本)[4]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言C
操作系统跨平台
类型字体光栅化
许可协议GNU通用公共许可证FTL許可證
网站https://www.freetype.org/

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]

其他 编辑

 
MacType控制面板窗口

在被多數自由桌上型系統軟體使用的同時,FreeType也被現代電子遊戲[26][27]及用於WiiOpera用作柵格化引擎。[28]gdipp[29]MacType[30]專案把Windows系統的字型柵格化引擎以FreeType取代。

参见 编辑

參考資料 编辑

  1. ^ Interview with David Turner. 2008-08-31 [2008-12-24]. (原始内容存档于2009-04-05). 
  2. ^ FreeType license. 2008-08-31 [2008-12-24]. (原始内容存档于2008-12-21). 
  3. ^ 3.0 3.1 FreeType History. 2013-07-02 [2014-08-06]. (原始内容存档于2014-06-25). 
  4. ^ "[ft-announce Announcing FreeType 2.13.2"]; 检索日期: 2023年8月28日; 作者姓名字符串: Werner LEMBERG; 出版日期: 2023年8月25日.
  5. ^ CHANGES BETWEEN 2.3.12 and 2.4.0. Sourceforge.net. 2010-07-12 [2014-04-04]. (原始内容存档于2013-10-29). 
  6. ^ 6.0 6.1 CHANGES BETWEEN 2.4.10 and 2.4.11. Sourceforge.net. 2012-12-20 [2014-04-04]. (原始内容存档于2014-04-28). 
  7. ^ CHANGES BETWEEN 2.4.11 and 2.4.12. Sourceforge.net. 2013-05-08 [2014-04-04]. (原始内容存档于2014-02-21). 
  8. ^ Announcing FreeType 2.1.10. Lists.nongnu.org. 2005-06-15 [2014-04-04]. (原始内容存档于2013-10-29). 
  9. ^ 9.0 9.1 9.2 9.3 FreeType version 2.2.1 released. Lists.nongnu.org. [2014-04-04]. (原始内容存档于2014-04-07). 
  10. ^ CHANGES BETWEEN 2.3.10 and 2.3.9. Sourceforge.net. [2014-04-04]. 
  11. ^ ft2faq. [2009-07-18]. (原始内容存档于2009-07-18). 
  12. ^ What are the differences between FreeType 1.x and FreeType 2 ?. Experts123.com. [2014-04-04]. (原始内容存档于2014-04-07). 
  13. ^ 13.0 13.1 FreeType 2 FAQ. FreeType 2. [July 26, 2011]. (原始内容存档于2015-06-10). 
  14. ^ HarfBuzz. Freedesktop.org. [2014-04-04]. (原始内容存档于2010-04-13). 
  15. ^ 15.0 15.1 FreeType and Patents. FreeType. SourceForge, Inc. July 4, 2010 [March 31, 2011]. (原始内容存档于2015-06-06). 
  16. ^ RepoView: RPM Fusion (Fedora - free) development Source RPM Packages. Download1.rpmfusion.org. 2014-03-11 [2014-04-04]. (原始内容存档于2014-04-07). 
  17. ^ adobe-contributes-cff-rasterizer-to-freetype. [2016-04-24]. (原始内容存档于2015-12-09). 
  18. ^ youve-got-cff. [2016-04-24]. (原始内容存档于2016-05-08). 
  19. ^ 19.0 19.1 Got CFF?. Google Open Source Blog. [2014-04-04]. (原始内容存档于2014-05-02). 
  20. ^ About the security content of OS X Lion v10.7.3 and Security Update 2012-001. Support.apple.com. 2012-05-31 [2014-04-04]. (原始内容存档于2014-03-27). 
  21. ^ Font Scaler. [4 April 2014]. (原始内容存档于2015-06-10). 
  22. ^ PlayStation®3 License. Scei.co.jp. [2014-04-04]. (原始内容存档于2014-07-06). 
  23. ^ Open Source Software used in PlayStation®4. Scei.co.jp. [2014-04-04]. (原始内容存档于2013-11-18). 
  24. ^ Open Source Software used in PlayStation®Vita. Scei.co.jp. [2014-04-04]. (原始内容存档于2014-04-07). 
  25. ^ Royal, Simon. ReactOS: A Windows Compatible Alternative OS. lowendmac.com. 2014-02-26 [2016-01-10]. (原始内容存档于2017-10-23). While the main core of ReactOS is built from scratch, it has some dependencies on existing software and protocols. It uses parts of Wine, networking in the form of lwIP, USB from Haiku, as well as FreeType, Mesa3D, and UniATA. 
  26. ^ 遊戲公司遺迹娛樂在他們的遊戲Dawn of War及Company of Heroes當中使用FreeType,以其在載入屏幕方面視為可靠。
  27. ^ FreeType也被用於《A Treehouse of My Own》及《Julie Saves The Eagles》之類的PC版美國娃娃英语American Girl (video game series)遊戲。
  28. ^ Wii上的Opera 9控制台使用FreeType,可以通過能以下列途徑在Wii中搜尋到的Third-party information頁面找到:Internet Channel > Operations Guide > About > Opera 9 for Wii — Third-party information
  29. ^ gdipp. [4 August 2014]. (原始内容存档于2015-06-10). 
  30. ^ MacType. [4 April 2014]. (原始内容存档于2013年4月26日). 

外部連結 编辑