FreeType
package.lua第80行Lua錯誤:module 'Module:Arguments' not found
- REDIRECT Template:Expand language
頁面Module:Infobox/styles.css沒有內容。
| 腳本錯誤:沒有「InfoboxImage」這個模塊。 | |
| 腳本錯誤:沒有「InfoboxImageVariant」這個模塊。 | |
| 開發者 | 大衛·特納、羅伯特·威廉、維納爾·倫貝爾[1][2]以及其他FreeType貢獻者 |
|---|---|
| 首次發布 | 1996年[3] |
| 當前版本 | Template:Software version |
| 源代碼庫 | 頁面Template:Plainlist/styles.css沒有內容。 |
| 編程語言 | C |
| 引擎 | 頁面Template:Plainlist/styles.css沒有內容。
|
| 操作系統 | 跨平台 |
| 類型 | 字體光柵化 |
| 許可協議 | GNU通用公共許可證、FTL許可證 |
| 網站 | https://www.freetype.org/ |
| 腳本錯誤:沒有「Template wrapper」這個模塊。 | |
腳本錯誤:沒有「Check for unknown parameters」這個模塊。
FreeType是一個用C語言實現的一個字體光柵化函式庫。它可以用來將字符柵格化並映射成點陣圖以及提供其他字體相關業務的支持。
FreeType並不提供API以執行更高級的功能,如文字佈局或圖形處理(例如彩色文本渲染、「空洞化」等)。然而,它提供了一個簡單、易用並統一的接口來訪問字型文件的內容,從而極大地簡化了這些任務。它支持各種字體格式,包括TrueType、Type 1、以及OpenType。
FreeType在兩個自由軟件許可證的授權下發佈:GNU通用公共許可證或者以及一個類BSD許可證。因此這個函式庫能夠使用於任何類型的項目中,無論其是否是專有軟件。同時也包括正在使用的主要自由桌面系統軟件。
功能[編輯]
字體微調[編輯]
- TrueType
- TrueType 字節碼直譯器於2.4.0版默認啟用,[4]TrueType次像素微調支持於2.4.11版實現。[5]
- PostScript
- Dave Arnold的新的CFF解析及微調引擎於2.4.12版加入,[6]2.5.0.1版默認啟用。
- Auto-hinter
- Auto-hinter於FreeType 2.1.10中以auto-fitter取代。[7]新的用於中日韓字體的算法於FreeType 2.2中加入,基於Akito Hirai的補丁。[8]
文件格式[編輯]
Adobe的新型SING字型包格式於FreeType 2.2中加入。[8]TrueType字體"head"表格當中的Bit 1於FreeType 2.2中得到支持。[8]對SFNT cmap 13表格格式的支持於2.3.10中加入。[9]對帶有SFNT封裝的OpenType Collection及CFF字體的支持於2.4.11版加入。[5]
- PostScript
- 針對AFM文件的追蹤性字距調整於FreeType 2.2中加入。[8]
歷史[編輯]
FreeType於1996年由大衛·特納(David Turner)創造,用以渲染TrueType字體,包括一個處理TrueType字節碼的解析器。最初以Pascal語言編寫,1997年由羅伯特·威廉(Robert Wilhelm)移植到C語言。隨後維納爾·倫貝爾(Werner Lemberg)加入開發組並維護Freetype至今。[3][10][11]
FreeType 1只支持TrueType字體格式,但包含了一個擴展來支持OpenType文本排版功能。
大規模重寫的2.0[編輯]
FreeType 2.0版於2000年發布,帶來完全重寫的代碼以使之模塊化。FreeType 2帶來對更多字體格式的支持,並且演化出被開發者稱為「更精簡且更強大」的源代碼。[12]FreeType 2不與FreeType 1兼容,但開發者聲稱從FreeType 1轉移到FreeType 2表現出的難度很小。[12]然而由於文本布局處理不是FreeType 2的目標,FreeType 1的OpenType文本布局功能在FreeType 2中被移除。FreeType 1的OpenType文本布局功能的進一步演化形式用在了Pango文本布局庫。HarfBuzz項目進一步發展出有着完全重寫的內容的所需特性作為獨立的庫,帶有比Pango的許可證略為嚴格的授權。[13]
專利衝突[編輯]
1999年Freetype項目被蘋果公司通知FreeType腳本錯誤:沒有「ilh」這個模塊。TrueType字體微調相關專利。之後Freetype被默認停用或者圍繞專利相關技術開發。因此像FreeBSD或Linux之類的一些開放源代碼項目包含禁用或者閹割字體微調的FreeType以避開蘋果持有的軟件專利。[14]
2010年5月起,所有與字體微調相關的有衝突的軟件專利被解除,[14]允許FreeType的TrueType字體微調引擎開放源代碼使用。許多禁用該引擎的系統提供選項來讓用戶啟用。Fedora中,freetype-freeworld從專有的yum資源庫轉移到自由資源庫[15]
CFF引擎捐贈[編輯]
2013年Adobe給FreeType項目捐贈了一個CFF(Compact Font Format,PostScript字體)渲染引擎,在2.5版被加入並默認啟用。[16][17]
用戶[編輯]
- Android
- FreeType在Android用作字體渲染引擎。[18]
- 蘋果公司
- 蘋果在iOS[18]和macOS[19]中使用FreeType,僅次於腳本錯誤:沒有「ilh」這個模塊。。
- Java
- 2007年,Sun公司在OpenJDK這個Java開發工具包中將專有的字型柵格化引擎變更為FreeType。[20]
- PlayStation
- 索尼於PlayStation 3[21]、PlayStation 4[22]及PlayStation Vita[23]的控制台中搭載FreeType。
其他[編輯]
在被多數自由桌上型系統軟體使用的同時,FreeType也被現代電子遊戲[25][26]及用於Wii的Opera用作柵格化引擎。[27]gdipp[28]及MacType[29]專案把Windows系統的字型柵格化引擎以FreeType取代。
參見[編輯]
腳本錯誤:沒有「Portal」這個模塊。
- HarfBuzz,用於Unicode文本塑形的庫
- Pango,多語種文本渲染引擎
- FontForge,字體編輯軟件
- AltNETType(頁面存檔備份,存於網際網路檔案館),FreeType的C#移植版本
參考資料[編輯]
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 3.0 3.1 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 5.0 5.1 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 8.0 8.1 8.2 8.3 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 12.0 12.1 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 14.0 14.1 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 18.0 18.1 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 遊戲公司遺跡娛樂在他們的遊戲Dawn of War及Company of Heroes當中使用FreeType,以其在載入屏幕方面視為可靠。
- ↑ FreeType也被用於《A Treehouse of My Own》及《Julie Saves The Eagles》之類的PC版Template:Le遊戲。
- ↑ Wii上的Opera 9控制台使用FreeType,可以通過能以下列途徑在Wii中搜尋到的Third-party information頁面找到:Internet Channel > Operations Guide > About > Opera 9 for Wii — Third-party information
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。
- ↑ 腳本錯誤:沒有「citation/CS1」這個模塊。