推荐一个开源的 .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);

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

推荐一个开源的 .NET 二维码生成库_第1张图片

上面的代码中, 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);
推荐一个开源的 .NET 二维码生成库_第2张图片

生成 PNG 格式的二维码

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

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

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

  2. 2. 安装 对应的 Nuget 包

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

推荐一个开源的 .NET 二维码生成库_第3张图片

使用这些扩展方法,生成 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")
);

生成的二维码如下:

推荐一个开源的 .NET 二维码生成库_第4张图片

项目地址

https://github.com/manuelbl/QrCodeGenerator

往期推荐:

在 .NET 中执行 JavaScript 代码

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

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

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

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

推荐一个开源的 .NET 二维码生成库_第5张图片

Dotnet 工具箱

扫码关注我们

59de260a4ddbec7da7caa8e498e2becd.png

分享

075e4ef95374cd1089f83c4a59b74590.png

点收藏

1042d035447c783fab6b2d5dab0147e3.png

点点赞

9c2419984da8078febde430724a73b1e.png

点在看

你可能感兴趣的:(.net,wpf,asp.net,后端)