百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

.NET跨平台绘图基础库--SkiaSharp

liuian 2025-06-03 23:28 45 浏览

SkiaSharp 是一个跨平台的 2D 图形 API,用于 .NET 平台,基于 Google 的 Skia 图形库。它提供了全面的 2D API,可以在移动、服务器和桌面模型上渲染图像。SkiaSharp 可以在多个 .NET 平台上使用,包括 ASP.NET Core、WPF、Winform、MAUI、AvaloniaUI 和 Uno。

Skia是个2D向量图形处理函数库,包含字型、座标转换,以及点阵图都有高效能且简洁的表现。不仅用于Google Chrome浏览器, Android开放手机平台也采用Skia作为绘图处理,搭配OpenGL/ES与特定的硬体特征,强化显示的效果

自2005年Skia被Google收购后,一直相当神秘低调,直到2007年初,Skia GL相关的源代码才被揭露,作为Google Android平台的图形引擎,稍后的Google Chrome浏览器也采用Skia引擎。随着Android与Chrome (开源版本称为"Chromium")两大平台公布源代码后,skia也一并公开源代码,以Apache License v2发布(注意,这意味着与GPLv2授权不相容) ,而Android与Chrome的代码库中都有一份[skia]的复制,因需求不同,做了部份的修改,比方说Chrome专案底下的 [chrome/trunk/src/skia],需要注意的是,Skia本身是不涉及底层环境,如Linux Framebuffer或Gtk+衔接的处理,这也是何以Android (通过Linux Framebuffer)与Chrome (开发中的Linux版本使用Gtk+)需要提供一份修改,以便系统接轨。

SkiaSharp是一个强大跨平台绘图框架,可以用SkiaSharp在WPF、安卓Xamarin.Forms客户端绘图,也可以用于创建PDF绘图,但是由于它不支持网页绘图,所以总觉得很遗憾,因为目前主流的浏览器都是谷歌Chrom内核,谷歌为什么不支持自家的Skia在网页直接绘图呢?如果SkiaSharp可以直接在网页绘图(Blazor webassembly),那它就是跨越全平台的绘图框架了。终于到了2021年10月12日,.NET 6发布RC2候选版本(正式发布前最后一版),宣布了一个突破性的技术:支持在Web网页上采用SkiaSharp画布绘图。这是.NET跨平台技术发展的一个创举,使用C#可以直接在网页画布上绘图,打破了JavaScript+canvas的长期垄断地位。C#是强类型语言,可以无缝对接从服务端获取的结构化数据,有效提高开发效率和质量。

ASP.NET Core updates in .NET 6 Release Candidate 2 - ASP.NET Blog (microsoft.com)

SkiaSharp is a cross-platform 2D graphics library for .NET based on the native Skia graphics library, and it now has preview support for Blazor WebAssembly. Let’s give it a try!

在 MAUI 中,SkiaSharp 是通过 Microsoft.Maui.Graphics 库使用的。Microsoft.Maui.Graphics 是一个跨平台的图形库,它使用 SkiaSharp 作为底层渲染引擎来提供一致的 API 访问本机图形功能。这意味着开发者可以在 MAUI 应用中使用 SkiaSharp 来绘制形状、文本和保存图像。此外,SkiaSharp 还可以用于创建自定义控件,例如在 MAUI 中绘制可定制颜色和角度的轮盘或圆饼图。

对于 Uno 平台,SkiaSharp 也可以集成到 Uno 中。开发者可以通过添加 NuGet 包 "SkiaSharp" 到共享类库,并在 XAML 中添加 SkXamlCanvas 控件来使用 SkiaSharp。然而,有时可能会遇到编译问题,需要确保找到正确的命名空间。

AvaloniaUI 默认使用 Skia 渲染引擎,这是因为 AvaloniaUI 的架构设计中包含了 SkiaSharp,为了提高图形渲染性能,AvaloniaUI 在其合成渲染器中增强了图形渲染能力,并且引入了 GPU 互操作功能,这使得 Avalonia 能够与 GPU 更高效地工作,从而提高渲染性能和视觉效果,然而,需要注意的是,AvaloniaUI 使用的 Skia 是一个有限的 Skia 子集,用于 Avalonia 运行所必需的功能,不包括图像处理、图像元数据和图像解码等功能。对于需要多用途图像处理的开发者来说,SkiaSharp 是更好的选择。在使用 SkiaSharp 3.0 时,开发者需要手动包含目标平台的 NativeAssets 包.

SkiaSharp 在 MAUI、AvaloniaUI 和 Uno 中都有广泛应用,并且通过 Microsoft.Maui.Graphics 提供了一致的跨平台图形渲染能力。在不同的 .NET 平台(如 MAUI、AvaloniaUI 和 Uno)中都提供了高性能的图形渲染能力,但在移动设备上可能需要额外的优化以避免性能问题。SkiaSharp 的性能表现如下:

  1. AvaloniaUI:Avalonia 使用 SkiaSharp 作为其渲染引擎,能够实现高性能的图形渲染,并在不同操作系统上实现一致的用户界面。然而,有观点认为 Avalonia 由于基于 Skia,可能会在移动设备上遇到性能问题。

  2. MAUI:在 MAUI 中,Microsoft.Maui.Graphics 和 SkiaSharp 都是重要的库,它们为开发者提供了强大的图形绘制能力。MAUI 专为提高性能而设计,通过在原生平台控件上实现一种精简的、解耦的处理程序映射器模式,减少了 UI 渲染中的开销。

  3. Uno:SkiaSharp 与 Uno Platform 的比较中,SkiaSharp 被描述为一个跨平台的 2D 图形 API,适用于 .NET 平台,提供了全面的 2D API,可以用于移动、服务器和桌面模型来渲染图像。

应用场景上来说,它适用于多种应用场景,包括但不限于:

  • 绘图工具:SkiaSharp 可以用于开发各种绘图工具,如富文本编辑器、图像绘制工具等。例如,可以使用 SkiaSharp 创建一个功能强大的绘图工具,支持复杂的图形绘制和编辑功能。

  • 报表制作:在报表开发中,SkiaSharp 可以用于生成高质量的报表图像,支持多种数据格式和布局需求。

  • 图像生成:SkiaSharp 可以用于生成各种图像,如验证码、二维码等。例如,可以使用 SkiaSharp 生成用于身份验证的二维码。

  • 用户界面绘制:在用户界面设计中,SkiaSharp 可以用于绘制复杂的图形和动画效果。例如,可以使用 SkiaSharp 在 WPF 应用程序中实现自绘的弹动小球、粒子花园等特效。

  • 游戏开发:SkiaSharp 可以用于开发简单的游戏,如投篮小游戏,通过自绘实现游戏中的动画和交互效果。

  • PDF 绘图:SkiaSharp 还可以在 PDF 上进行绘图,支持在多种平台上生成 PDF 文件中的图形内容。

  • 跨平台应用:由于 SkiaSharp 是跨平台的,因此可以在 Windows、Linux、Android、iOS 等多个平台上使用,支持在不同设备上渲染图像和图形。

  • 开源项目:SkiaSharp 被广泛应用于各种开源项目中,如 Kimono 设计器,支持以图形化的方式创建二维图片,并生成跨平台的代码


相关推荐

驱动网卡(怎么从新驱动网卡)
驱动网卡(怎么从新驱动网卡)

网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...

2026-01-30 00:37 liuian

win10更新助手装系统(微软win10更新助手)

1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...

windows11专业版密钥最新(windows11专业版激活码永久)

 Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...

手机删过的软件恢复(手机删除过的软件怎么恢复)
手机删过的软件恢复(手机删除过的软件怎么恢复)

操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...

2026-01-29 23:55 liuian

一键ghost手动备份系统步骤(一键ghost 备份)

  步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。  步骤...

怎么创建局域网(怎么创建局域网打游戏)

  1、购买路由器一台。进入路由器把dhcp功能打开  2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。  3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...

精灵驱动器官方下载(精灵驱动手机版下载)

是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...

一键还原系统步骤(一键还原系统有哪些)

1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。  2、在弹出的“准备安装”窗口中,可...

电脑加速器哪个好(电脑加速器哪款好)

我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...

任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)

是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...

u盘怎么恢复文件(u盘文件恢复的方法)

开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...

系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)

1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...

剪贴板权限设置方法(剪贴板访问权限)
剪贴板权限设置方法(剪贴板访问权限)

1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...

2026-01-29 21:37 liuian

平板系统重装大师(平板重装win系统)

如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...

联想官网售后服务网点(联想官网售后服务热线)

联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...