xamarin - 如何使用 SkiaSharp 从字符串文本创建位图
问题描述
我创建了一个条目,您可以在其中键入一个值,但现在我想创建一个包含条目文本的位图。获得位图后,我可以在 SkiaSharp 中加载它并在其上使用 BitmapModifiers。
这可能吗?
解决方案
虚拟样本可能如下所示:
这是 xaml 页面:
<StackLayout>
<Entry x:Name="InputText" />
<Button Text="Create Bitmap" Clicked="Button_Clicked" />
</StackLayout>
代码隐藏:
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;
}
推荐阅读
- azure-devops - 访问 Azure DevOps 安全文件属性
- python - Django CSS 在本地和生产环境中显示不同
- java - 拼图问题中的 a* 搜索算法的深度
- php - 网站平台配置问题
- matlab - 在 Matlab 中调用 afterEach 后如何获取函数句柄的输出?
- android - 在中文 ROM 中运行前台服务
- xml - 如何解析groovy xml响应
- python - Keras:正确使用 fit_generator、predict_generator 和 evaluate_generator
- html - 如何让孩子成长并包裹在第一个元素之下?
- ruby-on-rails - Rails 接受_nested_attributes_for 和belongs_to。为什么我不能设置id?