使用 SkiaSharp 在文本上添加阴影或边缘
Drop-Shadow or Edge on Text Using SkiaSharp
我正在尝试弄清楚如何让使用 SkiaSharp 创建的文本看起来像这样:
特别是文本的黑边(似乎在左侧)。此屏幕截图来自我们正在移植到 Android 的 Java 桌面应用程序,使用 Xamarin.没有黑边的数字614看起来不太好。
我知道这个答案 ,但它还不够。我一直在 SkPaint
对象上使用各种属性。但我想不通。
是否需要重新绘制文本,向左一点?我试过了,感觉不太好。
谢谢
我知道图像并不完美,但已经足够接近了(希望如此)。您可能需要使用提示或其他方式来获得漂亮的文字。
很有可能你使用的字体是专为小字符设计的,我那些只在 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);
我正在尝试弄清楚如何让使用 SkiaSharp 创建的文本看起来像这样:
特别是文本的黑边(似乎在左侧)。此屏幕截图来自我们正在移植到 Android 的 Java 桌面应用程序,使用 Xamarin.没有黑边的数字614看起来不太好。
我知道这个答案 ,但它还不够。我一直在 SkPaint
对象上使用各种属性。但我想不通。
是否需要重新绘制文本,向左一点?我试过了,感觉不太好。
谢谢
我知道图像并不完美,但已经足够接近了(希望如此)。您可能需要使用提示或其他方式来获得漂亮的文字。
很有可能你使用的字体是专为小字符设计的,我那些只在 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);