文字渲染一探
引子 近一个月都在与字体打交道,查阅了不少资料。 发现国内很少有这方面的一些资源,有点奇怪。 故此,想稍微梳理一下这方面的一些资料以及信息,方便对这方面感兴趣的朋友参阅。 文字渲染的组成 文字渲染严格意义上来说包含几个主要的核心模块,分别是: 1.字体光栅化 FreeType 它是一个软件字体引擎,它被设计成小巧、高效、可高度定制和可移植,同时能够生成高质量的输出(字形图像)。它还可以用于图形库、显示服务器、字体转换工具、文本图像生成工具和许多其他产品。 2.字体适配 Fontconfig 主要用于配置、定制管理系统里的 字体 ,简单的说就是通过给出的字体信息,例如粗体,斜体等,找到现有系统中最匹配的这些特征的字体文件。 3.Unicode文本双向算法 FriBidi 主要用来转换不同语系中存在的文本方向问题,例如右向左的文本, 翻转后为左向右顺序的文本。 4.文字塑形 HarfBuzz HarfBuzz是一种文字塑形布局引擎(text shaping library),它主要将Unicode转换为格式正确且位置正确的字形输出。 简单地说就是用于适配全世界不同语言的文字编码布局。 另一个非常知名库是 ICU ,而HarfBuzz的实现中将其作为第三方库引入 5.布局渲染 Cairo 或 Skia Graphics Library 当你拿到字体字形的数据之后,毫无疑问,