IRONSOFTWAREHOME
USING IRONQR

QR Code .NET Core Generator & Reader | IronQR for .NET

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

在 .NET Core 中创建QR代码生成器,只要选对了库,操作起来就非常简单。 在评估 QR 代码生成器的要求时,开发人员会在易用性和可选高级功能之间寻求平衡。 无论是构建 ASP.NET Core 网络应用程序还是控制台工具,开发人员都需要一个可靠的库,来处理从基本的二维码创建到高级定制的所有工作。

IronQR 为 .NET Core 提供了强大的解决方案,支持对文本字符串、URL 和日文 Unicode 文本进行编码。 有些人最初可能会寻找诸如 QRCoder 库(以其宽容的 MIT 许可而闻名)之类的 .NET 开源库,而 IronQR 则提供了一种具有机器学习功能和专门支持的企业级替代方案。

本教程演示了如何在您的 .NET Core 项目中生成 QR 代码、配置纠错级别以及使用机器学习驱动的检测功能读取现有代码。

立即开始使用 IronQR 免费试用版

第一步:
arrow pointer

如何在 .NET Core 中安装二维码库?

首先,打开 Visual Studio 并单击 "创建 "按钮启动一个新项目。 指定项目名称后,通过 NuGet 包管理器安装库只需几秒钟。 有些开发人员可能会搜索 QRCoder NuGet 软件包,而您可以通过在软件包管理器控制台中运行以下命令来安装 IronQR 框架:

PM > Install-Package IronQR

或者使用 NuGet 软件包管理器用户界面,搜索 "IronQR "并点击安装按钮。 该库提供了与 .NET Core 3.x、.NET 5、6、7、8、9 和 10 兼容的 .NET 实现,是现代网络开发和多平台项目的理想选择。

安装后,请在文件顶部添加所需的System.Drawing.Common,在.NET 6及更高版本中已不再支持跨平台使用。

您可以通过检查项目在.csproj文件中的包引用,或者在包管理器控制台输出中确认NuGet包是否出现,来验证安装是否成功。 安装完成后,IronQR API 参考文档将立即可用。

如何生成 QR 代码?

QrWriter 类通常与便捷的扩展方法配合使用,使生成 QR 码变得简单直观。 以下是一个完整示例的源代码,仅通过几行代码中的顶级语句即可生成QR码:

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");

// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");

输出

QR码生成器.NET Core:在C#中创建和读取快速响应码:图片1 - 从URL创建的QR

QrCodeData,其中包含QR符号的原始模块(黑白方块)。 IronQR 使用内部有效载荷生成器来确保输入文本被有效地编码为数字数据、字母数字文本字符串或字节数组。

来自AnyBitmap类提供跨平台的图像保存,因此相同的代码在Windows、macOS和Linux上无需修改即可工作。 您可以根据具体使用场景,将输出结果保存为 PNG、JPEG 或其他支持的格式。

如需查看实际演示,请访问生成QR码示例页面,该页面除了展示基本的生成流程外,还提供了其他配置选项。

什么是纠错级别,它们为什么重要?

纠错功能决定了 QR 符号在可扫描的同时能承受多大的损坏。 这是可选的高级功能之一,可实现品牌化和持久性。 QR标准(ISO/IEC 18004)定义了四个级别的纠错能力,每个级别都在数据容量与抗干扰能力之间进行权衡。

QR码纠错级别及其应用场景
级别数据恢复最适合
L (低)约7%清晰的数字显示屏
M(中等)约15%通用用途
Q(四分位数)约25%印刷材料
H (高)约30%恶劣环境、徽标叠加

using QrOptions 配置错误校正:

using IronQr;
using IronSoftware.Drawing;

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

// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");

QR 输出

QR码生成器.NET Core:在C#中创建和读取快速响应码:图片2 - 带有纠错的生成的QR码

第二个参数指定允许的最大版本号,控制二维码的大小和数据容量。 在添加徽标图像或实物佩戴的情况下,更高的纠错能力至关重要。

当您计划在QR码上叠加徽标时,请务必使用 H 级。 额外的冗余设计弥补了被徽标遮挡的模块,确保代码易于阅读。 IronQR错误更正文档解释了版本选择如何与数据容量和更正级别进行交互。

如何使用徽标和颜色自定义 QR 代码外观?

IronQR 的 QrStyleOptions 支持生成符合品牌风格的 QR 码,可自定义颜色、尺寸及嵌入徽标。 这对于重视视觉一致性的营销材料、产品包装和活动门票尤为有用。

using IronQr;
using IronSoftware.Drawing;

var styleOptions = new QrStyleOptions
{
    Dimensions = 300,
    Margins = 10,
    Color = Color.DarkBlue,
    Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};

QrCode qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");

样式 QR 代码

QR码生成器.NET Core:在C#中创建和读取快速响应码:图片3 - 样式化的QR码输出

Dimensions属性设置输出图像的像素大小。 Margins属性控制安静区 —— QR码周围的空白边框,扫描器需要此边框以正确识别符号边界。 《QR代码自定义指南》涵盖了额外的样式属性,包括背景颜色和模块形状选项。

嵌入徽标时,其面积请控制在QR码总面积的 30% 以内。 超过此阈值可能会影响可读性,即使在 H 级校对下也是如此。 自定义后使用多个QR扫描应用进行测试是良好的实践。

如何在 ASP.NET Core 中生成二维码?

将二维码生成集成到 ASP.NET Core 中遵循模型视图控制器模式。 这是一个HomeController类的实现,它直接从动作方法返回QR码图像:

using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

namespace Examples
{
    public class HomeController : Controller
    {
        public IActionResult GenerateQR(string content)
        {
            QrCode myQr = QrWriter.Write(content);
            AnyBitmap qrImage = myQr.Save();
            byte[] imageBytes = qrImage.ExportBytes();
            return File(imageBytes, "image/png");
        }
    }
}

该端点接受 QR 代码数据作为参数,并直接返回生成的 PNG 图像。 该方法同样适用于 ASP.NET Core Web API 项目和 Razor 视图。

对于生产环境的ASP.NET Core应用程序,考虑使用IDistributedCache缓存频繁生成的QR码,以减少CPU负担。 静态 URL、产品标识符或活动链接对应的 QR 码在不同请求之间保持不变,因此非常适合进行缓存。

您还可以将 IronQR 集成到 Minimal API 端点中。 《ASP.NET Core集成教程》提供了一个完整的示例,包括依赖注入模式以及如何从Blazor组件提供QR代码图像。

Program.cs中使用顶级语句模式注册IronQR的许可证密钥,保持启动配置清晰:

using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";

在调用任何 IronQR 方法之前,请先设置许可证密钥。 开发过程中,您可以使用从 IronQR 许可页面获取的免费试用密钥。

如何对日语 Unicode 文本进行编码?

IronQR支持通过汉字模式编码日语Unicode文本,该模式比标准编码使用更少的数据段高效地编码日语Unicode字符。 这会缩减相同内容的QR码版本(尺寸),生成结构更简单的符号,从而加快扫描速度。

using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");

输出

QR码生成器.NET Core:在C#中创建和读取快速响应码:图片4 - 用日文Unicode文本编码的QR码

该库在检测到日文字符时会自动切换至汉字模式,无需手动配置数据分段即可优化QR码的数据容量。 这对于面向日语用户的应用程序尤为重要,例如电子商务平台、餐厅菜单或旅游信息查询亭。

汉字模式对 Shift JIS 字符集中的字符进行编码。 如果您的应用程序在同一字符串中同时处理日语和拉丁文字符,IronQR 会在内部处理模式切换,为每个段落选择最有效的编码方式。 关于 .NET 的国际化最佳实践,微软的全球化文档提供了有关字符编码的有用背景信息。

如何使用机器学习读取 QR 码?

IronQR 凭借其基于机器学习的 QR 码阅读器脱颖而出。 该机器学习模型即使在读取倾斜角度或部分遮挡的QR码时也能实现高精度——这相较于许多开源替代方案中使用的传统阈值检测算法,具有显著优势。

using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
AnyBitmap inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);

// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);

foreach (var result in results)
{
    Console.WriteLine($"Found: {result.Value}");
}

QR 代码读取输出

QR码生成器.NET Core:在C#中创建和读取快速响应码:图片5 - 从QR码读取的数据

QrResult对象包含解码值及位置元数据,您可以使用这些信息在UI覆盖层或文档处理管道中突出显示检测到的QR码区域。 这一特性使 IronQR 成为文档处理和库存管理系统的不二之选。

该机器学习模型完全在设备端运行,无需调用云端 API,因此适用于气隙环境和离线应用。 ZXing.NET 等传统的基于特征向量的检测器在处理干净、正面朝上的条码时表现良好,但在应对眩光、旋转或损坏等实际场景时往往难以应对。 IronQR 的机器学习方法能够可靠地处理这些场景。

对于批量文档处理,您可以依次向阅读器传递多张图片,并收集所有处理结果。 QR 读取文档涵盖了从 PDF 页面和摄像头流中读取数据,以及静态图像文件。

跨平台支持如何工作?

与依赖于System.Drawing.Common的解决方案(在.NET 6+中不再支持跨平台使用)不同,IronQR使用IronSoftware.Drawing以实现真正的多平台项目。 您的代码可以在 Windows、macOS、Linux、iOS 和 Android 系统中一致运行。 对于多平台项目,无需使用 SkiaSharp 的替代方案——IronQR 已在内部处理了平台抽象。

.NET 跨平台文档阐述了 .NET 10 在平台兼容性方面的全面优势。IronQR 完全遵循这些原则,完全避免使用特定于某个平台的 API。

IronQR 支持以下部署目标:

  • .NET 10、9、8、7、6 —— 所有现代 .NET 版本
  • .NET Core 3.x -- 适用于尚未迁移至现代 .NET 的应用程序
  • Xamarin 和 MAUI -- 用于移动应用程序开发
  • Azure Functions 和 AWS Lambda -- 适用于无服务器工作负载

在 Docker 容器中运行时,除标准的 .NET Standard 运行时镜像外,无需额外安装任何系统软件包。 这简化了您的Dockerfile,相较于要求本地GDI+依赖的库。 《IronQR 部署指南》涵盖了容器化和云环境的配置内容。

IronQR 与其他 .NET QR 库相比如何?

目前有多种 .NET QR 库,各具优缺点。 了解这些差异有助于您为项目选择合适的工具。

QRCoder 是一个采用 MIT 许可证的开源库。 它适用于简单的QR码生成,但不包含QR码读取功能或基于机器学习的检测功能。 与 IronQR 支持的样式化输出相比,其输出选项较为有限。

ZXing.NET 是 Java ZXing 库的 C# 移植版本。 它支持读写双功能,但依赖于传统的计算机视觉技术,这些技术在处理受损或旋转的条码时往往难以应对。 跨平台图像处理需要额外配置。

IronQR 提供生成与读取功能于一体的解决方案,其 Enterprise 许可证包含专属技术支持。 ML驱动的读取器、样式化输出和IronSoftware.Drawing集成使其成为生产应用程序的更完整解决方案。

有关详细的功能比较,请参阅《IronQR与QRCoder比较》和《IronQR与ZXing比较》文章。

下一步计划是什么?

IronQR 为 .NET Core 环境提供了完整的 QR 代码生成与读取解决方案。 通过自动处理复杂负载生成器以及原始模块和QrCodeData数据的装配,它简化了开发周期。 无论您需要简单的开源库替代方案,还是具备可选高级功能的系统,IronQR 的跨平台架构都能确保其稳定运行。

如需继续使用 IronQR 进行开发,请参考以下资源:

立即开始免费试用,无需任何前期承诺,即可充分体验 IronQR 的全部功能。

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 天试用密钥
无需信用卡或创建账户