【发布时间】:2017-09-14 18:20:03
【问题描述】:
我创建了一个应用程序,我想在其中在谷歌地图上显示文本。我选择使用自定义标记,但它们只能是图像,因此我决定使用 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?
【问题讨论】:
-
请在您的问题中发布相关代码,不要仅仅链接到外部源,并期望我们花时间挖掘您的代码。如果您特别询问“视觉伪影”,包括显示问题的图像将是一个非常好的主意。
标签: xamarin xamarin.forms skia skiasharp