在SkiaSharp中渲染多字符表情符号

时间:2019-01-10 12:26:29

标签: xamarin unicode emoji skiasharp skia

我正在SkiaSharp中渲染表情符号,并且能够使其针对简单的表情符号(如或)正确运行,但对于较复杂的表情符号(如或‍)却无法正常工作。

最棘手的部分是设置包含表情符号的正确字体,因为不支持后备字体,如下所示:https://github.com/mono/SkiaSharp/issues/232

这是我使用的代码的简化版本:

int GrinningFaceEmoji = 0x1f600;

void DrawEmoji(SKCanvas canvas, string emoji, int x, int y) {

    SKPaint paint = new SKPaint();
    paint.Typeface = SKFontManager.CreateDefault().MatchCharacter(GrinningFaceEmoji);

    canvas.DrawText(emoji, x, y, vtsm.paint);
}

emoji是一个简单的表情符号时,它可以完美工作,但更复杂的表情符号显示为多个字符。浅色的婴儿显示为两个字符-黄色的婴儿,后跟一个彩色方块。艺术家显示为三个字符。我目前正在macOS上对此进行测试。

0 个答案:

没有答案
相关问题