基于C# (.NET)的QR码生成器与QRCoder库

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

基于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 — 每个模块的像素大小

推荐