FreeType字体引擎介绍

FreeType是一个免费、高质量、可移植的字体引擎,提供统一API访问多种字体格式,如TrueType、OpenType等。它支持单色位图和反走样渲染,适用于嵌入式系统和各种程序。FreeType2增加了更多字体格式的支持,并具有高级特性,如字符映射、字形名、字符间距调整等。内置高速缓存系统提高效率,可用于各种字体格式的渲染。
摘要由CSDN通过智能技术生成
 

在图像处理领域,有时候我们需要在图片上进行打印字体的任务。例如,打印一个logo到图片上。在这种情况下,我们需要调用字体库,并将其“雕刻”到图片上,而常用的TrueType,OpenType等字体库存在接口不统一,彼此不兼容等缺点,如果能有一个统一的接口可以兼容种种常见的字体库,那岂不解决问题了?FreeType字体引擎的功能正是如此。

 FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。

目前,FreeType有FreeType1和FreeType2两种字体引擎。其中,FreeType1仅支持TrueType字体的渲染操作。而FreeType2则支持很多常见字体的渲染,所以,下面的论述都是针对FreeType2而言。   

FreeType 2的发行遵循两个开源许可:BSD样式的FreeType License和GPL(通用公共许可证)。它可以被用在任何程序中,无论是专有与否。

FreeType 2主要具有以下一些特性:

(1)为访问字体文件提供了一套统一的、独立于字体文件类型的、简单而易用的API。另外,一些特别类型的API可以用来访问字体文件里的特殊数据。

(2) 与大多数同类的字库不同,FreeType 2 生来就支持类似TrueType 或者 Type 1的可缩

这份文档提供了FreeType 2函数库设计与实现的细节。本文档的目标是让开发人员更好的理解FreeType 2是如何组织的,并让他们扩充、定制和调试它。 首先,我们先了解这个库的目的,也就是说,为什么会写这个库: * 它让客户应用程序方便的访问字体文件,无论字体文件存储在哪里,并且与字体格式无关。 * 方便的提取全局字体数据,这些数据在平常的字体格式中普遍存在。(例如:全局度量标准,字符编码/字符映射表,等等) * 方便的提取某个字符的字形数据(度量标准,图像,名字,其他任何东西) * 访问字体格式特定的功能(例如,SFNT表,多重控制,OpenType轮廓表) Freetype 2的设计也受如下要求很大的影响: * 高可移植性。这个库必须可以运行在任何环境中。这个要求引入了一些非常激烈的选择,这些是FreeType2的低级系统界面的一部分。 * 可扩展性。新特性应该可以在极少改动库基础代码的前提下添加。这个要求引入了非常简单的设计:几乎所有操作都是以模块的形式提供的。 * 可定制。它应该能够很容易建立一个只包含某个特定项目所需的特性的版本。当你需要集成它到一个嵌入式图形库的字体服务器中时,这是非常重要的。 * 简洁高效。这个库的主要目标是只有很少cpu和内存资源的嵌入式系统。 这份文档的其他部分分为几个部分。首先,一些章节介绍了库的基本设计以及Freetype 2内部对象/数据的管理。 接下来的章节专注于库的定制和与这个话题相关的系统特定的界面,如何写你自己的模块和如何按需裁减库初始化和编译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值