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

2024-02-09

我正在使用 Freetype 1.9.1 和 Harfbuzz 1.7.6 渲染可能包含表情符号的文本,但是我不知道如何正确渲染 Apple Color Emoji 中的表情符号修饰符和 ZWJ 序列(sbix https://learn.microsoft.com/en-us/typography/opentype/spec/sbix彩色字体)。

我也尝试过 Noto Color Emoji(CBDT/CBLC https://learn.microsoft.com/en-us/typography/opentype/spec/cbdt彩色字体),按预期工作,以及 Segoe UI Emoji(彩色/CPAL https://learn.microsoft.com/en-us/typography/opentype/spec/colr彩色字体),它呈现黑白字形,但是似乎对 COLR/CPAL 的支持只是在 Freetype 中,因此对我来说不是问题。

有人对 sbix 字体的注意事项有什么建议吗?集群类型?哈夫巴兹旗帜...?

预期行为 https://i.stack.imgur.com/SF3rU.png

苹果颜色表情符号——不好 https://i.stack.imgur.com/lzh8a.png

诺托彩色表情符号——好的 https://i.stack.imgur.com/N29aC.png


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Apple Color Emoji 中使用 Harfbuzz 和 Freetype 的表情符号修饰符和 ZWJ 序列 的相关文章

随机推荐