FreeType

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

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

FreeType
開發者大衛·特納、羅伯特·威廉、維納爾·倫貝爾[1][2]以及其他FreeType貢獻者
首次發布1996年,​28年前​(1996[3]
當前版本
  • 2.13.3(2024年8月12日;穩定版本)[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.3. [2024年8月14日]. 
  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日). 

外部連結

編輯