我创建了一个应用程序,我想在其中在谷歌地图上显示文本。我选择使用自定义标记,但它们只能是图像,因此我决定使用 SkiaSharp 从我的文本中创建图像。
private static ImageSource CreateImageSource(string text)
{
int numberSize = 20;
int margin = 5;
SKBitmap bitmap = new SKBitmap(30, numberSize + margin * 2, SKImageInfo.PlatformColorType, SKAlphaType.Premul);
SKCanvas canvas = new SKCanvas(bitmap);
SKPaint paint = new SKPaint
{
Style = SKPaintStyle.StrokeAndFill,
TextSize = numberSize,
Color = SKColors.Red,
StrokeWidth = 1,
};
canvas.DrawText(text.ToString(), 0, numberSize, paint);
SKImage skImage = SKImage.FromBitmap(bitmap);
SKData data = skImage.Encode(SKEncodedImageFormat.Png, 100);
return ImageSource.FromStream(data.AsStream);
}
然而,我创建的图像在生成的图像顶部有难看的伪影,我的感觉是,如果我创建多个图像,它们会变得更糟。 我构建了一个示例应用程序,它显示了工件和我用来绘制文本的代码。可以在这里找到: https ://github.com/hot33331/SkiaSharpExample
我怎样才能摆脱那些文物。我用错了skia吗?