查看原文
其他

开源的 .NET 二维码生成库

DotNet 2024-04-12

The following article is from Dotnet 工具箱 Author 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

在程序中添加下面的代码

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);

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

上面的代码中, 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);

生成 PNG 格式的二维码从 .NET 6 开始,System.Drawing 只在 Windows 操作系统上支持,所以对于 Linux 平台,就要另寻辟径了。

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

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

2、安装 对应的 Nuget 包

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

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

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

生成的二维码如下:

项目地址

https://github.com/manuelbl/QrCodeGenerator

- EOF -

推荐阅读  点击标题可跳转
.NET 二维码生成器 可生成多种格式
五分钟看完,彻底理解协变逆变C# 获取文件信息大全


看完本文有收获?请转发分享给更多人

推荐关注「DotNet」,提升.Net技能 

点赞和在看就是最大的支持❤️

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存