FreeType入门

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wyy626562203/article/details/82621154

入门

什么是FreeType?

FreeType是一种软件字体引擎,设计小巧,高效,高度可定制,便携,同时能够生成高质量的输出(字形图像)。它还可用于图形库,显示服务器,字体转换工具,文本图像生成工具以及许多其他产品。

请注意,FreeType是一种字体服务,并不提供API来执行更高级别的功能,如文本布局或图形处理(例如,彩色文本渲染,’挖空’等)。但是,它通过提供简单,易用且统一的界面来访问字体文件的内容,从而大大简化了这些任务。

FreeType是在两个开源许可证下发布的:我们自己的BSD FreeType许可证和GNU公共许可证版本2.它可以被任何类型的项目使用,无论它们是专有的还是非专有的。

请注意,’FreeType’也称为’FreeType 2’,以区别于旧的,已弃用的’FreeType 1’库,不再维护。

特征

以下是FreeType提供的功能的非详尽列表。

  • FreeType提供了一种简单易用的API,可以统一的方式访问字体内容,与文件格式无关。此外,某些特定于格式的API可用于访问字体文件中的特殊数据。

  • FreeType的设计基于模块,这些模块可以在编译时静态链接到库,也可以在运行时按需加载。模块用于支持特定的字体格式,甚至是新的字形图像格式!

  • FreeType是在考虑嵌入式系统的情况下编写的。这意味着它不使用静态可写数据(即,它可以直接从ROM运行),并且客户端应用程序可以提供它们自己的内存管理器和I / O流实现。后者允许您使用相同的API轻松读取基于ROM的压缩或远程字体文件。多个流实现同时使用单个FreeType实例。

    您还可以通过仅编译嵌入式项目或环境所需的模块来减小FreeType代码的大小。

  • 默认情况下,FreeType支持以下字体格式。

    • TrueType字体(TTF)和TrueType集合(TTC)

    • CFF字体

    • WOFF字体

    • OpenType字体(OTF,TrueType和CFF变体)和OpenType集合(OTC)

    • Type 1字体(PFA和PFB)

    • CID-keyed Type 1字体

    • SFNT-based的位图字体,包括颜色表情符号

    • X11 PCF字体

    • Windows FNT字体

    • BDF字体(包括抗锯齿字体)

    • PFR字体

    • Type 42字体(有限支持)

  • 给定字形轮廓,FreeType能够使用256级“灰色”生成高质量的单色位图或抗锯齿像素图。

  • FreeType支持TrueType和OpenType规范定义的所有字符映射。它还能够从Type 1字体自动合成Unicode charmap,避免了这种格式常见的痛苦的“编码”问题(当然,如果需要,也可以使用原始编码)。

  • FreeType核心API提供了简单的函数来访问字形名称或基本字距调整数据等高级信息。

  • 一个功能齐全且高效的TrueType字节码解释器,试图匹配Windows字节码引擎的结果。还有可能激活子像素提示(也就是说ClearType,仍处于开发阶段)。

  • 对于那些不需要或不想使用字体码解释器的TrueType字体的人,我们开发了自己的自动hinter模块。它也被其他可扩展格式使用。

  • 由于其模块化设计,可以轻松增强库,通过可选API提供额外的格式特定信息(例如,提供可选API以从TrueType和OpenType字体检索SFNT表)。

  • FreeType提供了自己的缓存子系统。它可以用于有效地缓存face实例或字形图像。

  • 一组演示程序演示了FreeType的用法;在这里给出的位置查找’ft2demos-x.x.x’存档(如果你在Windows平台上,则为’ftdmoxxx’)。 ‘x.x.x’(或’xxx’)给出版本号,例如’2.4.10’或’2410’。

要求

FreeType是用行业标准ANSI C编写的,可以使用任何兼容的C或C ++编译器轻松编译。 在使用gcc,Visual C++和Borland C++等流行编译器进行编译时,我们甚至会非常谨慎地消除所有警告。

除了标准的ANSI C库之外,FreeType没有任何外部依赖关系,可以在任何类型的系统上自行编译和安装。 一些模块需要外部库(例如,用于处理用gzip或bz2压缩的字体),但是,它们是可选的并且可以被禁用。

专利问题

自2010年5月以来,与TrueType字节码解释器相关的所有专利均已过期。默认情况下,对已获专利的ClearType颜色过滤模型的支持已禁用。

猜你喜欢

转载自blog.csdn.net/wyy626562203/article/details/82621154