使用 QRCoder 库在 C# (.NET) 中生成 QR 码
QR 码已成为现代网页和移动应用程序不可或缺的一部分。它们用于快速传输链接、联系信息、Wi-Fi 密码、支付详情等。在 C# (.NET) 生态系统中,最简单、最流行的 QR 码生成库之一是 QRCoder。在本文中,我们将详细介绍如何安装该库、创建简单和复杂的 QR 码,以及将其保存为各种格式(PNG、SVG)。
什么是 QRCoder?
QRCoder 是一个轻量级、高性能的开源 .NET 库(支持 .NET Framework 4.6+ 和 .NET Core/.NET 5+)。除了用于位图图像的标准 System.Drawing 库外,它不需要外部依赖。主要功能包括:
- 从文本、URL、联系人(vCard)、Wi-Fi 设置、短信、电子邮件和其他格式生成 QR 码。
- 配置纠错级别(L、M、Q、H)。
- 选择 QR 码版本(矩阵大小)。
- 导出为 PNG、BMP、SVG、XAML、EPS、PostScript 和 HTML。
- 支持颜色、背景、透明度和自定义徽标。
在 C# 项目中安装
通过 NuGet 包管理器安装 QRCoder 库。打开包管理器控制台或使用 .NET CLI:
dotnet add package QRCoder或者通过包管理器控制台:
Install-Package QRCoder基本示例 — 生成简单的 QR 码
让我们创建一个控制台应用程序,为字符串 "https://pythonlib.ru" 生成 QR 码并将其保存为 PNG 文件。
using QRCoder;using System.Drawing;
string url = "https://pythonlib.ru";QRCodeGenerator qrGenerator = new QRCodeGenerator();QRCodeData qrCodeData = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);QRCode qrCode = new QRCode(qrCodeData);
// 生成图像(像素)Bitmap qrCodeImage = qrCode.GetGraphic(20);
// 保存到文件qrCodeImage.Save("qrcode.png", System.Drawing.Imaging.ImageFormat.Png);
Console.WriteLine("QR 码已创建:qrcode.png");在此示例中:
ECCLevel.Q— 纠错级别(25% 的数据可能被损坏)。GetGraphic(20)— 每个模块(小方块)的像素大小。- 结果是黑白 PNG。
自定义外观 — 颜色、徽标、SVG
QRCoder 允许灵活自定义 QR 码的外观。让我们看一个带有彩色背景、深色模块和嵌入徽标的示例。
using QRCoder;using System.Drawing;
string data = "https://pythonlib.ru";QRCodeGenerator qrGenerator = new QRCodeGenerator();QRCodeData qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);QRCode qrCode = new QRCode(qrCodeData);
// 颜色设置Color darkColor = Color.FromArgb(52, 73, 94); // 深蓝色Color lightColor = Color.FromArgb(236, 240, 241); // 浅灰色
// 使用徽标生成(徽标应位于中心)Bitmap logo = new Bitmap("logo.png");Bitmap qrCodeImage = qrCode.GetGraphic(20, darkColor, lightColor, logo);
qrCodeImage.Save("qrcode_color.png", System.Drawing.Imaging.ImageFormat.Png);Console.WriteLine("带有徽标的彩色 QR 码已保存。");请注意:为了正确使用徽标,建议使用 ECCLevel.Q 或 ECCLevel.H 纠错级别,因为徽标会覆盖部分数据。
导出为 SVG(矢量格式)
如果您需要可缩放的 QR 码(例如用于打印),请使用 SVG 渲染器。为此,请安装额外的包 QRCoder.Svg: