如何使用SkiaSharp从字符串文本创建位图

3
我创建了一个输入框,你可以在里面输入值,但现在我想用输入框中的文本创建位图。当我得到位图后,我可以在SkiaSharp中加载它并对其使用BitmapModifiers。

这个可行吗?


1
https://learn.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/bitmaps/drawing - Jason
1个回答

1
我建议你浏览这些Github上的示例
虚拟示例可能如下所示: 这是XAML页面:
<StackLayout>
    <Entry x:Name="InputText" />
    <Button Text="Create Bitmap" Clicked="Button_Clicked" />
</StackLayout>

Codebehind:

SKBitmap helloBitmap;

void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args)
{
    SKImageInfo info = args.Info;
    SKSurface surface = args.Surface;
    SKCanvas canvas = surface.Canvas;

    canvas.Clear(SKColors.Aqua);

    canvas.DrawBitmap(helloBitmap, 0, 0);
}

private void Button_Clicked(object sender, EventArgs e)
{
    CreateBitmapFromText(InputText.Text);
}

private void CreateBitmapFromText(string text)
{
    // Create bitmap and draw on it
    using (SKPaint textPaint = new SKPaint { TextSize = 48 })
    {
        SKRect bounds = new SKRect();
        textPaint.MeasureText(text, ref bounds);

        helloBitmap = new SKBitmap((int)bounds.Right,
                                    (int)bounds.Height);

        using (SKCanvas bitmapCanvas = new SKCanvas(helloBitmap))
        {
            bitmapCanvas.Clear();
            bitmapCanvas.DrawText(text, 0, -bounds.Top, textPaint);
        }
    }

    SKCanvasView canvasView = new SKCanvasView();
    canvasView.PaintSurface += OnCanvasViewPaintSurface;
    Content = canvasView;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接