IRONSOFTWAREHOME
USING IRONQR

如何使用NuGet包在 C# 中生成二维码

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

在 .NET 应用程序中生成 QR 代码从未如此简单。 借助合适的 NuGet 包,您只需几行代码即可生成 QR 码、自定义其外观,并将其保存为多种输出格式。 IronQR 提供企业级 QR 码生成服务,支持 .NET Core、.NET Framework 以及 .NET 5-10 的跨平台环境。

本教程演示了如何安装 IronQR NuGet 包并立即开始生成 QR 码。 无论您是在构建库存管理系统、活动票务平台还是营销应用程序,IronQR 都能提供 Professional QR 实现所需的工具。

第一步:
arrow pointer

如何安装 QR Code NuGet 包?

通过 NuGet 软件包管理器安装 IronQR 只需几秒钟。 在Visual Studio中打开NuGet包管理器控制台并运行以下命令,或者在CLI环境中使用dotnet add package命令:

PM > Install-Package IronQR

NuGet 软件包会自动处理所有依赖关系,确保与目标框架兼容。 IronQR 支持 .NET Framework 4.6.2 及以上版本、.NET Core 2.0 及以上版本以及 .NET 5-10,使其成为适用于任何 Visual Studio 项目的多功能库。

在编写任何代码之前,您需要一个免费试用许可证密钥。 请在应用程序启动初期设置此项,以便后续所有调用均经过身份验证:

using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

安装许可证密钥后,您的应用程序即可生成、读取并自定义QR码,且输出图像上不会带有水印。

如何生成您的第一个QR码?

创建您的第一个QR码只需极少的代码。 QrWriter类处理QR码生成,提供符合大多数用例的合理默认设置:

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");

QR 代码输出

NuGet QR Code Generator:使用C#生成QR码只需几行代码:图像1 - 简单QR输出

QrCode对象。 AnyBitmap,支持将其编码为多种图像格式或为XAML路径导出矢量数据。 这种方法可在Windows、macOS和Linux上运行,无需平台特定的依赖关系——与那些在.NET 6开始仅限Windows的System.Drawing库不同。

上述三行代码模式涵盖了最常见的场景:编码字符串、获取位图、写入文件。在实际生产环境中,您通常会传入 URL 字符串、产品标识符或 JSON 数据,而非纯文本。

如何选择合适的错误修正级别?

QR 码支持 ISO/IEC 18004 QR 码标准中定义的四种纠错级别,这些级别决定了 QR 码在遭受多大程度的损坏后仍可被扫描。 IronQR支持所有四个级别,通过QrOptions类提供:

IronQR 支持的 QR 码纠错级别
级别恢复能力最适合
L (低)约7%整洁的环境,最大数据密度
M(中等)约15%通用设置(默认)
Q(四分位数)约25%工业应用
H (高)约30%徽标、户外标识、部分遮挡
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");

输出

NuGet QR Code Generator:使用C#生成QR码只需几行代码:图像2 - 高纠错级别QR

纠错级别越高,QR 符号越密集,原始模块越多,即使代码部分模糊或损坏,也能保持可读性。 对于将印制在包装上或嵌入徽标中的代码,H级是理想选择。对于仅用于数字显示且无需担心损坏的情况,M级在数据容量与可靠性之间实现了平衡。

选择错误的级别是生产环境中扫描失败的常见原因。 如果您的 QR 码将出现在实体材料上,或与摄像头之间的距离不固定,请使用 Q 级或 H 级,并在部署前使用多个扫描应用验证输出效果。

如何自定义QR码的外观?

IronQR通过QrStyleOptions提供丰富的样式选项,能够自定义颜色、尺寸、边距和嵌入Logo。 品牌QR码在营销场景中表现更佳,因为它们在视觉上将QR码与已知的品牌身份建立了关联:

using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");

有风格的 QR 输出

NuGet QR Code Generator:使用C#生成QR码只需几行代码:图像3 - 样式化QR代码

Dimensions属性设置像素宽度和高度。 Margins属性控制安静区——即QR符号周围的白色边框,扫描仪用来定位代码边界。 若将边距缩小至低于建议的 4 个模块的最小值,可能会导致旧款设备扫描失败。

在 QR 代码中添加徽标可提高品牌识别度。 该样式系统可在保持可读性的同时自动定位徽标——这相较于需要手动计算位置的开源替代方案而言,是一项显著优势。

如何将QR码保存为不同的输出格式?

IronQR 支持多种输出格式,包括 PNG、JPEG、GIF、TIFF、BMP 和 SVG。 SaveAs方法会根据文件扩展名自动检测格式:

using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();

多种二维码输出格式

NuGet QR Code Generator:使用C#生成QR码只需几行代码:图像4 - 不同文件格式保存的QR代码

ExportBytes()方法在需要通过HTTP返回QR码图像而不写入磁盘的web应用程序中特别有用。 您可以将字节数组直接写入响应流,或将其存储在数据库列中以便按需检索。

为了在PDF文档中嵌入QR码,IronQR提供StampToExistingPdfPage方法,支持在现有文档上直接放置QR码。 该库支持原生运行,无需额外安装 PDF 库,这在希望尽可能减少依赖项数量的微服务环境中尤为重要。

IronQR NuGet 包与 QRCoder 相比如何?

QRCoder 库是 .NET 环境中广受欢迎的 QR 码生成开源方案。 曾使用过QRCoder的开发者熟悉其多步骤接口,涉及PngByteQRCode的单独渲染类。 IronQR将其简化为单个QrWriter.Write()调用。

IronQR 与 QRCoder 功能对比(面向 .NET 开发者)
特征IronQRQRCoder
跨平台渲染全面支持 .NET 5-10仅限 Windows 系统进行位图渲染
基于机器学习的阅读99.9% 准确率检测仅生成文本,不进行阅读
PDF 集成原生水印支持需要其他库
商业支持24/5 工程支持仅限社区
徽标嵌入内置,自动定位需手动覆盖

QRCoder 在 Windows 环境中用于基础生成效果良好。 IronQR 的机器学习模型可实现从任意角度精准读取 QR 码——这对处理用户提交图片的应用程序至关重要,因为此类应用无法控制输入图像的质量。 单方法 API 还减少了实现可运行功能所需的代码行数。

对于从 QRCoder 迁移的团队,请参阅《QRCoder 到 IronQR 迁移指南》,其中提供了 API 的对照映射。

如何将二进制数据编码到QR码中?

除了文本外,IronQR 还支持对字节数组进行编码,以生成二进制 QR 码有效载荷。 这对于无法表示为 UTF-8 字符串的加密令牌、序列化对象或原始二进制标识符非常有用:

using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");

输出

NuGet QR Code Generator:使用C#生成QR码只需几行代码:图像5 - 二进制编码QR码

二进制编码使您能够在QR码中包含加密有效载荷、序列化对象或任何二进制内容。 接收端的扫描器必须懂得如何解析二进制有效载荷——这在访问控制系统中很常见,因为QR码中包含的是带签名的令牌,而非人可读的 URL。

请注意,二进制数据生成的QR符号比等效的文本数据更为密集。 如果有效载荷大小会影响远距离扫描的可靠性,请应用 H 级错误校正,并使用用户可能拥有的最小规格相机进行测试。

如何在C#中读取QR码?

IronQR 支持读写双功能。 QrReader类接受图像文件、位图和相机帧,适用于批处理和实时扫描场景:

using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}

该基于机器学习的阅读引擎可处理任意方向的图像,并能处理在错误校正阈值范围内的局部损坏。 针对实际应用场景,请查阅QR读取教程,了解如何处理低质量输入、多码图像以及扫描模式配置。

如何在 ASP.NET Core 应用程序中使用 IronQR?

Web 应用程序经常需要按需生成 QR 码——例如用于用户账户链接、一次性登录码或支付请求。 以下示例演示了如何直接从 .NET Core 最小 API 端点提供 QR 码图像:

using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();

此模式在ASP.NET Core精简API和标准MVC控制器中均适用。ExportBytes()调用避免写入临时文件到磁盘,这在文件系统可能是只读或临时的容器化部署中非常重要。

如需完整的 ASP.NET Core 集成指南,请参阅 ASP.NET Core QR 生成器教程。 Blazor 专属指南也可在 Blazor QR 码生成器教程中找到。

如何为QR图像添加边距并调整其大小?

控制尺寸和安全区对于获得高质量的PRINT输出至关重要。 IronQR通过QrStyleOptions暴露,并有专门的操作指南详细介绍每个功能:

using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");

有关不同输出介质下尺寸和边距要求的完整指南,请参阅关于调整QR码图像尺寸以及为QR码添加边距的操作指南文章。 《生成QR图像指南》涵盖了从许可证激活到文件输出的完整图像生成工作流。

针对具体的QR应用场景——包括生成名片用QR码构建动态QR码生成器以及从图像中读取QR码——相关专题文章均配有完整的代码示例,对每种场景进行了详细说明。

下一步计划是什么?

IronQR 将 QR 码生成从一个多步骤流程简化为一个简单的 NuGet 集成。 安装包、调用QrWriter.Write()并保存结果——涵盖大部分实际场景的三个操作。 通过同一库,可实现错误更正、自定义样式、PDF 加盖水印以及基于机器学习的阅读功能。

IronQR 文档提供了完整的 API 参考,包括使用扫描模式读取 QR 码、批处理以及特定平台的部署说明等高级主题。 IronQR 教程部分包含针对 .NET MAUI、VB.NET 和控制台应用程序的分步指南。

立即开始免费试用,无限制体验全部功能;或购买许可证进行生产环境部署,并享受每周 5 天、每天 24 小时的工程支持。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户