如何在 Windows.Forms 应用程序中呈现 SKBitmap?

Posted

技术标签:

【中文标题】如何在 Windows.Forms 应用程序中呈现 SKBitmap?【英文标题】:How to render SKBitmap in Windows.Forms application? 【发布时间】:2017-10-17 18:13:02 【问题描述】:

您好,我开始了一个新项目,WinForms 对我来说是新的。我有一个 SKBitmap 对象,但我不知道如何渲染它。

【问题讨论】:

【参考方案1】:

有几种方法。首先要做的是安装 SkiaSharp.Views 包——一个包含平台特定视图和实用程序的小包,用于将 SkiaSharp 类型转换为当前平台类型:

https://www.nuget.org/packages/SkiaSharp.Views/

安装后你应该得到这些类型:

https://developer.xamarin.com/api/namespace/SkiaSharp.Views.Desktop/

回到代码,您可以添加SKControl 并在绘制事件上绘制位图:

control.PaintSurface += (...) => 
    // draw
;

或者,您可以将位图转换为 Windows 位图:

var sysBitmap = skBitmap.ToBitmap();

然后,您可以将其分配给PictureBox

pictureBox.Image = sysBitmap;

【讨论】:

以上是关于如何在 Windows.Forms 应用程序中呈现 SKBitmap?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Forms 2.0 中从子窗体关闭父窗体?

用不了System.Windows.Forms,如何使用MessageBox?

如何清除 System.Windows.Forms.WebBrowser 会话数据?

如何检测 C# Windows Forms 代码在 Visual Studio 中执行?

如何在 Ubuntu 上的 MonoDevelop 中使用 System.Windows.Forms?

在 `System.Windows.Forms` 控件中没有 `ref` 关键字的情况下,如何通过引用传递