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

点在看

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐