基于C# (.NET)的QR码生成器:强大的QRCoder工具
QR码已成为现代Web和移动应用不可或缺的一部分。它们用于快速跳转链接、传输联系信息、身份验证、支付等众多场景。如果您在.NET (C#)平台上开发应用程序,那么生成QR码的最佳解决方案之一就是QRCoder库。这是一个轻量级、高性能且完全托管的开源库,无需外部依赖(例如ImageMagick或ZXing)。
什么是QRCoder?
QRCoder是QR码标准(ISO/IEC 18004)的纯C#实现。它允许创建各种版本(1到40)的QR码,设置纠错级别(L、M、Q、H),嵌入Logo,并将结果导出为PNG、BMP、JPG、GIF格式,以及通过附加模块导出为SVG或XAML格式。该库同时支持.NET Framework(从4.6开始)和.NET Core / .NET 5/6/7/8,使其成为Web应用(ASP.NET)、桌面应用(WPF、WinForms)和控制台项目的通用选择。
安装与配置
通过NuGet包管理器安装QRCoder。执行以下任一命令:
// 通过包管理器控制台Install-Package QRCoder
// 通过.NET CLIdotnet add package QRCoder安装库后,您可以立即开始生成QR码。无需任何额外配置。
基础示例:生成包含文本的QR码
最简单的方法是创建一个包含任意字符串(URL、文本、电话号码)的QR码。以下示例生成QR码并保存到文件:
using QRCoder;using System.Drawing;using System.Drawing.Imaging;
class Program{ static void Main() { // 1. 创建生成器 QRCodeGenerator qrGenerator = new QRCodeGenerator();
// 2. 创建QR码数据(文本、纠错级别) QRCodeData qrCodeData = qrGenerator.CreateQrCode( "https://pythonlib.ru", QRCodeGenerator.ECCLevel.Q // Q级别 — 25%恢复能力 );
// 3. 创建图形表示 QRCode qrCode = new QRCode(qrCodeData);
// 4. 渲染为Bitmap(模块大小20像素) Bitmap qrCodeImage = qrCode.GetGraphic(20);
// 5. 保存到文件 qrCodeImage.Save("qrcode.png", ImageFormat.Png);
Console.WriteLine("QR码已创建:qrcode.png"); }}最终您将获得一个名为qrcode.png的黑白QR码文件。Q纠错级别可恢复最多25%的损坏数据——适用于大多数场景。
带Logo的QR码(品牌定制)
QRCoder支持在QR码中心嵌入图像。这对于品牌贴纸或名片非常有用。注意:Logo不应覆盖超过30%的码面积,否则将无法扫描。
using QRCoder;using System.Drawing;
public Bitmap GenerateQrWithLogo(string text, string logoPath){ QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q); QRCode qrCode = new QRCode(qrCodeData);
// 加载Logo Image logo = Image.FromFile(logoPath);
// 生成带Logo的QR码(模块大小20,背景白色,Logo居中) Bitmap result = qrCode.GetGraphic(20, Color.Black, Color.White, logo); return result;}外观定制:颜色与大小
您可以轻松更改QR码的颜色,以适应应用程序的设计。GetGraphic方法接受以下参数:
- pixelsPerModule — 每个模块的像素大小