推荐一个开源的 .NET 二维码生成库
你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!介绍QrCodeGenerator是开源的 .NET 二维码生成库,它支持从文本字符串和字节数组生成二维码图片。这个库是基于 .NET Standard 2.0 构建的,所以它可以在大多数现代 .NET 平台(.NET Core、.NET Framework、Mono 等)上运行,包括 .NET 6.
你好,这里是 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. 在程序中添加下面的代码
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);
执行后,程序会生成下面的二维码。
![null 36e27908a7ced889b6c06b64d522b2be.png](https://i-blog.csdnimg.cn/blog_migrate/4a0906b5659cac2ae44769d5525ea8ef.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);
![null 2ecf979c0032658651c10df0f0168420.png](https://i-blog.csdnimg.cn/blog_migrate/3b45e7cc7dbd666c6c48237ac8e4f2f3.png)
生成 PNG 格式的二维码
从 .NET 6 开始,System.Drawing 只在 Windows 操作系统上支持,所以对于 Linux 平台,就要另寻辟径了。
好在作者提供了解决方案,灵活地以扩展方法的形式提供了三个选项。
1. 选择下面任一个图像库
2. 安装 对应的 Nuget 包
3. 把 QrCodeBitmapExtensions.cs 文件复制到您的项目中
![null e0e4b590cdf1c6eb2ad1633d80bb5cbd.png](https://i-blog.csdnimg.cn/blog_migrate/a756343977901ffed5a0d75004085239.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")
);
生成的二维码如下:
![null 0ea227bf6e9b6b31b46d1f97049dfc6f.png](https://i-blog.csdnimg.cn/blog_migrate/59d5dc6e7790d1db8f57d32d790070d4.png)
项目地址
https://github.com/manuelbl/QrCodeGenerator
往期推荐:
Dotnet 工具箱
扫码关注我们
分享
点收藏
点点赞
点在看
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)