freetype如何处理(组合)长字符串的复杂脚本

时间:2014-01-20 12:06:24

标签: unicode freetype text-rendering

我使用freetype来渲染单个字符,我可以使用一些额外的数据来创建长字符串。但是对于像印地语或藏语这样复杂的语言脚本,你需要一个高级逻辑来连接所有这些下标,上标,复杂的辅音等。这应该如何处理?是否有一个基于freetype的库或者我找不到freetype中的函数?

1 个答案:

答案 0 :(得分:0)

实际上它是关于SO的要求/推荐库,但我认为唯一的开源选择是Pango

  

Pango是一个用于布局和呈现文本的库,重点是国际化。"

     

[...]

     

Pango包括PangoLayout,一个用于布置整个文本块的高级驱动程序,以及帮助编辑国际化文本的例程。

请参阅the Script Gallery以了解其可以处理的一系列欧洲和其他脚本 - 我不会看到印地语(梵文)或藏文,但看起来它很可能也没有任何问题。< / p>

Pango内部使用&#34; Harfbuzz进行复杂文本处理&#34;。你可以尝试两种方法,看看需要多少工作来单独使用Harfbuzz获得你需要的东西,或者直接去Pango并获得全包服务。 (我想知道在功能中划分界线的位置。)

仅供参考:部分&#34;高级逻辑&#34; FreeType缺乏可归因于处理OpenType定位和字形替换。 FreeType开发人员似乎主要集中在绘图标志符号(请参阅http://freetype.org/opentype/index.html),将物流外包给Harfbuzz。