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日). 

外部連結