推荐一个开源的 .NET 二维码生成库

897318e4eff3859c19245b93d1ea6b1c.png

a0a9f2a7b6f242f46ea8f0dcb2a3c5e4.gif

fc61984f50f34ad64e7a32292d327270.png

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!

介绍

QrCodeGenerator 是开源的 .NET 二维码生成库,它支持从文本字符串和字节数组生成二维码图片。

这个库是基于 .NET Standard 2.0 构建的,所以它可以在大多数现代 .NET 平台(.NET Core、.NET Framework、Mono 等)上运行,包括 .NET 6, .NET 7。

核心特点

  • • 遵循 QR Code Model 2 标准, 支持完整的 40 种版本(大小), 以及 4 个不同的二维码纠错级别。

  • • 输出 svg, png 等多种格式。

  • • 基于 MIT 协议,开源免费。

  • • 跨平台支持,macOS, Linux, iOS

  • • 项目提供了 WinForms、WPF、ASP.NET、ImageSharp、SkiaSharp 等的示例代码。

如何使用

1. 通过 Nuget 安装 Net.Codecrete.QrCodeGenerator。

Install-Package Net.Codecrete.QrCodeGenerator -Version 2.0.3
  1. 1. 在程序中添加下面的代码

var text = "https://dotnet.microsoft.com"; 
var qr = QrCode.EncodeText(text, QrCode.Ecc.Medium);
string svg = qr.ToSvgString(4);
File.WriteAllText("qrcode.svg", svg, Encoding.UTF8);

执行后,程序会生成下面的二维码。

36e27908a7ced889b6c06b64d522b2be.png

上面的代码中, QrCode.Ecc.Medium 用来配置纠错级别。比如设置为 QrCode.Ecc.High 时,代表二维码损坏 30% 以下,还是可以正常识别的。另外 Medium 是 15%, Low 是 7%。

另外还支持设置前景和背景颜色, 下面的就变成绿码了。

var text = "https://dotnet.microsoft.com";  
var qr = QrCode.EncodeText(text, QrCode.Ecc.High);
string svg = qr.ToSvgString(4,"green","white");
File.WriteAllText("qrcode.svg", svg, Encoding.UTF8);
2ecf979c0032658651c10df0f0168420.png

生成 PNG 格式的二维码

从 .NET 6 开始,System.Drawing 只在 Windows 操作系统上支持,所以对于 Linux 平台,就要另寻辟径了。

好在作者提供了解决方案,灵活地以扩展方法的形式提供了三个选项。

  1. 1. 选择下面任一个图像库

  2. 2. 安装 对应的 Nuget 包

  3. 3. 把 QrCodeBitmapExtensions.cs 文件复制到您的项目中

e0e4b590cdf1c6eb2ad1633d80bb5cbd.png

使用这些扩展方法,生成 PNG 图像非常简单:

var text = "https://dotnet.microsoft.com";  
var qr = QrCode.EncodeText(text, QrCode.Ecc.High);  
qr.SaveAsPng("qrcode.png", 10, 3, 
    foreground:SKColor.Parse("#45aae5"),
    background:SKColor.Parse("#ffffff")
);

生成的二维码如下:

0ea227bf6e9b6b31b46d1f97049dfc6f.png

项目地址

https://github.com/manuelbl/QrCodeGenerator

往期推荐:

在 .NET 中执行 JavaScript 代码

适用于 .NET 的开源文本差异对比组件

基于 abp 微服务架构的开源低代码平台

开源轻量的 .NET 监控工具 - 看门狗

使用 C# 开发的轻量级开源数据库 LiteDB

c99318f3213f63f902c2759384b19efe.jpeg

Dotnet 工具箱

扫码关注我们

59de260a4ddbec7da7caa8e498e2becd.png

分享

075e4ef95374cd1089f83c4a59b74590.png

点收藏

1042d035447c783fab6b2d5dab0147e3.png

点点赞

9c2419984da8078febde430724a73b1e.png

点在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值