博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】FreeType介绍
阅读量:5217 次
发布时间:2019-06-14

本文共 1717 字,大约阅读时间需要 5 分钟。

  • 简介
    • FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType,OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。
  • 特性
    • 下面是 FreeType2 提供的特性的一个不完全列表:
  1. FreeType2 为访问字体文件提供了一套统一的、独立于字体文件类型的、简单而易用的API。另外,一些特别类型的API可以用来访问字体文件里的特殊数据。
  2. 与大多数同类的字库不同,FreeType2 生来就支持类似TrueType 或者 Type1的可缩放字体类型,并且可以将字体的大纲数据(控件介绍/提示)返回给用户应用程序。
  3. FreeType2 的设计是基于模块的,这些模块可以在编译时被静态链接到库中或者在运行时根据需要加载。模块可以用来支持特殊的字体格式,或者甚至是新的符号图像类型!
  4. FreeType2 特意使用嵌入式系统编写,这意味着它不使用静态可写数据(也就是说,它可以直接从ROM中运行),这样客户程序就可以只为他们自己提供内存管理和输入/输出流的实现。
  5. 客户程序自己的输入/输出流可以使你轻易地使用相同的API读取基于ROM或被压缩的或远程的字体文件。多个流实现可以并行的被一个FreeType2 实例使用。
  6. 你可以只编译那些你的嵌入式工程或环境需要的模块,从而有效的减小FreeType2 的代码大小
  7. FreeType2 默认支持下面的字体类型:
    • TrueType 字体(集合)
    • Type1 字体
    • CID-keyed Type1 字体
    • CFF 字体
    • OpenType fonts (包括 TrueType 和 变体CFF )
    • SFNT-based bitmap 字体
    • X11 PCF 字体
    • Windows FNT 字体
    • BDF 字体 (包括反走样类型的)
    • PFR 字体
    • Type 42 字体 (有限支持)
  8. 通过一个给定的字形轮廓,FreeType2 有能力产生一个高质量的单色位图或一幅使用256阶灰度的反走样的像素图。这比Windows9x/98/NT/2000 或 FreeType1使用的5阶灰度像素图要好得多。
  9. FreeType 2 支持 TrueType 和 OpenType 规格定义的全部字符映射。同时,它也完全有能力自动合成Type1 使用的那种Unicode字符表,这种表要求必须把一个那种令人头痛的供转换编码时使用的结束符放置在标的末尾——这在Type1 使用的那种格式中是很常见的(当然,如果你需要,那种原始的编码方式也是可用的)。
  10. FreeType 2 的核心API提供了对访问字形名或调整数据中字符间距这样的高级信息的函数支持。
  11. 一个完整且有效率的TrueType字节码解释器。这个引擎可以用很小的点产生极好的输出。由于TrueType规格极其令人费解且十分含糊,这个组件想要成功完成输出是极其困难的。但无论如何,我们现在已经能使Windows的显示质量达到Mac的水平。
  12. 对于那些不需要或不希望为TrueType字体使用字节码解释器的人,我们开发了我们自己的自动提示模块。这种模块过去也曾被一些可缩放的字体使用过。
  13. FreeType2 可以产生一些相似的字体引擎无法产生的信息,例如字距调整的位距、字符名、垂直度量之类的。由于它模块化的设计,可以很方便地通过可选的API更改FreeType库来提供另外的针对特定字体类型的信息。(例如,一个可选的API用来检索TrueType 和 OpenType字体的SFNT表。
  14. 自从2.0.1版发布开始,FreeType2 开始提供它自己的超高速缓存子系统。可以利用它缓存可变实例或字形图像,使它们拥有更高的效率。

原文:

转载于:https://www.cnblogs.com/dahai/archive/2013/05/10/3070425.html

你可能感兴趣的文章
Java使用FileReader(file)、readLine()读取文件,以行为单位,一次读一行,一直读到null时结束,每读一行都显示行号。...
查看>>
Elipse安装Spring Tool Suite
查看>>
Sphinx在windows下安装使用[支持中文全文检索]
查看>>
【转载】cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
查看>>
原码反码补码详解
查看>>
DRF权限
查看>>
datepicker自定义 -- iOS
查看>>
Cannot assign to 'self' outside of a method in the init family
查看>>
zabbix 内置key说明
查看>>
python模块之psutil
查看>>
23、CacheManager原理剖析与源码分析
查看>>
22、BlockManager原理剖析与源码分析
查看>>
28、对多次使用的RDD进行持久化或Checkpoint
查看>>
24、Checkpoint原理剖析
查看>>
31、数据本地化
查看>>
29、Java虚拟机垃圾回收调优
查看>>
33、shuffle性能优化
查看>>
30、提高并行度&广播共享数据
查看>>
35、sparkSQL及DataFrame
查看>>
32、reduceByKey和groupByKey对比
查看>>