表情符号修饰符& ZWJ序列使用Harfbuzz& Apple Color Emoji中的Freetype

时间:2018-06-06 12:45:25

标签: c++ emoji freetype harfbuzz

我使用Freetype 1.9.1和Harfbuzz 1.7.6来渲染可能包含表情符号的文本,但是我不知道如何从Apple Color Emoji正确渲染表情符号修饰符和ZWJ序列({{3颜色字体)。

我还尝试过按预期工作的Noto Color Emoji(sbix颜色字体)和Segoe UI Emoji(CBDT/CBLC颜色字体),它呈现黑色&白色字形,但似乎在Freetype中对COLR / CPAL的支持仅为COLR/CPAL,因此对我来说不是问题。

有没有人知道sbix字体需要注意什么?群集类型? Harfbuzz旗帜......?

being developed

Expected behaviour

Apple Color Emoji -- not OK

2 个答案:

答案 0 :(得分:1)

HarfBuzz逐渐改善了对不同序列的支持,现在可以可靠地用于不同的Emoji修饰符和序列。

除此之外,v2.1.0还通过简单简洁的API添加了对所有可用Emoji文件格式的支持,https://github.com/harfbuzz/harfbuzz/blob/master/src/hb-ot-color.h当然仍然可以由您自己决定渲染部分,但您不必担心字体结构至少已经有了简单易用的API,https://github.com/harfbuzz/harfbuzz/blob/master/src/test-ot-color.cc也是如何使用API​​的一个很好的例子。

答案 1 :(得分:0)

我对文字整形还很陌生,但是我设法使用Harfbuzz和Cairo在SDL2窗口上显示了表情符号(带有修饰符和ZWJ)。

GitHub Repository

enter image description here

根据您所说的,主要区别是我使用的是HarfBuzz 1.8.2版。