dea*_*mer 1 opentype icu harfbuzz
这三个开源库非常常用于android.我只知道这些库用于处理字体.我在想这些图书馆之间的区别是什么?它们是否相互关联?或者他们可以互相替代.
小智 9
OpenType不是库,它是"智能"字体的标准,是高级排版和复杂书写系统支持最广泛使用的格式.
ICU是一个支持Unicode的库,它提供了许多功能,如Unicode字符属性,Unicode双向算法实现,编码转换等.ICU还提供了一个OpenType实现,ICU LayoutEngine,但Android AFAIK没有使用它,它也没有维护,在某些时候将被HarfBuzz取代.
HarfBuzz是一个文本整形库,简而言之它需要一个字体,一串文本和一些属性(脚本,语言,可选的OpenType特性),并返回一系列字体字形ID,渲染引擎将在屏幕上绘制它们.它主要是一个OpenType实现,但可以支持其他字体技术.它是一个低级库,需要对字体和文本呈现有一些了解才能正确使用.