SkiaSharp:.NET强大而灵活的跨平台图形库

SkiaSharp:.NET强大而灵活的跨平台图形库我是编程乐趣 一个 10 年 Net 开发经验老程序员 点击右上方 关注 每天为你分享开源项目和编程知识 在 Net 6 之前 我们一般是使用 System Drawing Common 来生成图像 但在 Net 6 平台需要配置 才能在非 Window

大家好,欢迎来到IT知识分享网。

我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。

在.Net 6之前,我们一般是使用System.Drawing.Common来生成图像。

但在.Net 6平台需要配置,才能在非Windows平台使用System.Drawing.Common。而从.Net 7开始,非Windows不再允许使用,官方也给我们推荐了几个替代库。

SkiaSharp:.NET强大而灵活的跨平台图形库

今天我们一起来了解下,免费开源图像库:SkiaSharp。

01

项目简介

SkiaSharp是基于Google的Skia图形库的.NET封装,是一个用于2D图像绘制的开源库,无论桌面应用程序、移动应用还是Web应用,都可以使用。

.Net开发人员可以利用这个强大而灵活的跨平台图形库,来实现高质量的图形绘制和渲染。

02

项目特性

1、跨平台:支持多种操作系统,包括Windows、macOS、iOS、Android以及其他.NET Core兼容的平台。

2、高性能:支持硬件加速技术,提供高效的图形渲染能力,都可以保证在任何平台应用流畅的用户体验;

3、易用性:提供了直观的API,使得开发人员可以轻松地在.NET应用程序中绘制各种形状、文本和图像。此外还提供了WPF和WinForms的控件,简化开发难度与工作量。

4、丰富的图形功能:除了提供基本的绘图操作,还提供很多复杂的图形效果,如阴影、渐变和纹理。

5、支持多种文本渲染:无论是矢量字体还是位图字体,都提供了强大的文本渲染能力。

6、社区活跃:在Github已收获3.9K的Star。

SkiaSharp:.NET强大而灵活的跨平台图形库

03

使用示例

1、安装依赖库

SkiaSharp:.NET强大而灵活的跨平台图形库

2、验证码示例代码

using SkiaSharp; //图片宽度 var width = 90; //图片高度 var height = 30; //生成随机验证码 var code = CreateValidateCode(4); // 创建一个SkiaSharp画布 using (var surface = SKSurface.Create(new SKImageInfo(width, height))) { var canvas = surface.Canvas; // 清除画布 canvas.Clear(SKColors.White); // 使用SkiaSharp绘制验证码文本 using (var textPaint = new SKPaint()) { textPaint.Color = SKColors.Black; textPaint.IsAntialias = true; textPaint.TextSize = height * 0.8f; // 设置文本大小 textPaint.StrokeWidth = 3; var textBounds = new SKRect(); textPaint.MeasureText(code, ref textBounds); var xText = (width - textBounds.Width) / 2; var yText = (height - textBounds.Height) / 2 - textBounds.Top; canvas.DrawText(code, xText, yText, textPaint); } // 绘制干扰线 using (var linePaint = new SKPaint()) { // 半透明黑色 linePaint.Color = new SKColor(0, 0, 0, 128); linePaint.StrokeWidth = 1; linePaint.IsAntialias = true; var random = new Random(); for (int i = 0; i < 5; i++) // 绘制5条干扰线 { float x1 = 0; float y1 = random.Next(height); float x2 = width; float y2 = random.Next(height); canvas.DrawLine(x1, y1, x2, y2, linePaint); } } // 保存图像到文件 using (var image = surface.Snapshot()) using (var data = image.Encode()) { File.WriteAllBytes("code.png", data.ToArray()); } } /// <summary> /// 随机生成验证码 /// </summary> /// <param name="len"></param> /// <returns></returns> string CreateValidateCode(int len) { // 可选字符集 const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0"; // 创建一个新的随机数生成器 Random random = new Random(); // 生成验证码 string code = new string(Enumerable.Repeat(chars, len) .Select(s => s[random.Next(s.Length)]).ToArray()); return code; }

3、效果

SkiaSharp:.NET强大而灵活的跨平台图形库

04

项目地址

https://github.com/mono/SkiaSharp

点赞收藏私信回复:【888】,领取.Net视频教程。

– End –

推荐阅读

一个监控C#方法运行耗时开源库

推荐一个Star 4.1K的.Net开源CMS项目

基于C#开发的适合Windows开源文件管理器

一个亚马逊赞助的.Net轻量级、流行的HTTP客户端库

5个yyds的.Net商城开源项目

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/161743.html

(0)
上一篇 2024-12-11 20:45
下一篇 2024-12-11 21:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信