【问题标题】:Drop-Shadow or Edge on Text Using SkiaSharp使用 SkiaSharp 在文本上放置阴影或边缘
【发布时间】:2018-02-23 12:05:06
【问题描述】:

我试图弄清楚如何让使用 SkiaSharp 创建的文本看起来像这样:

尤其是文本的黑边(似乎在左侧)。此屏幕截图来自我们使用 Xamarin 移植到 Android 的 Java 桌面应用程序。没有黑边,数字 614 看起来不太好。

我知道这个答案 https://stackoverflow.com/a/40428587/540156 ,但它并没有给我足够的信息。我一直在 SkPaint 对象上使用各种属性。但我无法弄清楚。

是否需要再次绘制文本,稍微向左一点?我试过了,看起来不太好。

谢谢

【问题讨论】:

    标签: skiasharp


    【解决方案1】:

    我知道图像并不完美,但已经足够接近(希望如此)。您可能必须使用提示或其他方式来获得漂亮的文本。

    您可能使用的是专为小字符设计的字体,我花哨的字体可能只在 12 点上看起来不错。

    canvas.Clear(new SKColor(19, 139, 4));
    
    var paint = new SKPaint
    {
        Color = SKColors.Black,
        IsAntialias = true,
        Style = SKPaintStyle.Fill,
        TextAlign = SKTextAlign.Center,
        TextSize = 11,
        Typeface = SKTypeface.FromFamilyName("Terminal", SKTypefaceStyle.Bold)
    };
    var coord = new SKPoint(info.Width / 2, (info.Height + paint.TextSize) / 2);
    canvas.DrawText("614", coord, paint);
    
    paint.Color = new SKColor(0, 255, 0);
    coord.Offset(1, -1);
    canvas.DrawText("614", coord, paint);
    

    【讨论】:

    • 感谢马修。我认为这看起来很不错。也不知道 Offset 方法。好用!
    猜你喜欢
    • 2012-01-07
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 2014-01-20
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多