開發者 | 大衛·特納、羅伯特·威廉、維納爾·倫貝爾[1][2]以及其他FreeType貢獻者 |
---|---|
首次发布 | 1996年[3] |
当前版本 |
|
源代码库 | |
编程语言 | C |
操作系统 | 跨平台 |
类型 | 字体光栅化 |
许可协议 | GNU通用公共许可证、FTL許可證 |
网站 | https://www.freetype.org/ |
FreeType是一個用C語言實現的一個字体光栅化函式庫。它可以用來將字符柵格化並映射成點陣圖以及提供其他字體相關業務的支持。
FreeType並不提供API以執行更高級的功能,如文字佈局或圖形處理(例如彩色文本渲染、「空洞化」等)。然而,它提供了一個簡單、易用並統一的接口來訪問字型文件的內容,從而極大地簡化了這些任務。它支持各種字體格式,包括TrueType、Type 1、以及OpenType。
FreeType在兩個自由軟件許可證的授權下發佈:GNU通用公共許可證或者以及一個類BSD許可證。因此這個函式庫能夠使用于任何類型的項目中,無論其是否是專有軟件。同時也包括正在使用的主要自由桌面系統軟件。
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]
FreeType于1996年由大卫·特纳(David Turner)创造,用以渲染TrueType字体,包括一个处理TrueType字节码的解析器。最初以Pascal语言编写,1997年由罗伯特·威廉(Robert Wilhelm)移植到C语言。随后维纳尔·伦贝尔(Werner Lemberg)加入开发组并维护Freetype至今。[3][11][12]
FreeType 1只支持TrueType字体格式,但包含了一个扩展来支持OpenType文本排版功能。
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侵犯TrueType字体微调相关专利。之后Freetype被默认停用或者围绕专利相关技术开发。因此像FreeBSD或Linux之类的一些开放源代码项目包含禁用或者阉割字体微调的FreeType以避开苹果持有的软件专利。[15]
2010年5月起,所有与字体微调相关的有冲突的软件专利被解除,[15]允许FreeType的TrueType字体微调引擎开放源代码使用。许多禁用该引擎的系统提供选项来让用户启用。Fedora中,freetype-freeworld从专有的yum资源库转移到自由资源库[16]
2013年Adobe给FreeType项目捐赠了一个CFF(Compact Font Format,PostScript字体)渲染引擎,在2.5版被加入并默认启用。[17][18]
在被多數自由桌上型系統軟體使用的同時,FreeType也被現代電子遊戲[26][27]及用於Wii的Opera用作柵格化引擎。[28]gdipp[29]及MacType[30]專案把Windows系統的字型柵格化引擎以FreeType取代。
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.
|