3

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

我还尝试了 Noto Color Emoji(CBDT/CBLC color font),它按预期工作,以及 Segoe UI Emoji(COLR/CPAL color font),它呈现黑白字形,但似乎对 COLR/CPAL 的支持是只是在 Freetype中开发,因此对我来说不是问题。

有人对使用 sbix 字体的注意事项有任何提示吗?集群类型?Harfbuzz 标志...?

预期行为

Apple Color Emoji——不行

Noto Color Emoji -- 好的

4

2 回答 2

5

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

此外,v2.1.0 通过简单简洁的 API 添加了对所有可用 Emoji 文件格式的支持,https://github.com/harfbuzz/harfbuzz/blob/master/src/hb-ot-color.h当然渲染部分仍然取决于您(或使用 freetype 来渲染),但鉴于https://github.com/harfbuzz/harfbuzz/blob/的简单易用 API,您至少不必再处理字体结构1934652/src/main.cc#L46-L247也是如何使用 API 的一个很好的例子。

于 2018-11-03T19:55:13.350 回答
3

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

GitHub 存储库

在此处输入图像描述

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

于 2018-07-08T17:49:27.420 回答