QR Code .NET Core Generator & Reader | IronQR for .NET
在 .NET Core 中创建QR代码生成器,只要选对了库,操作起来就非常简单。 在评估 QR 代码生成器的要求时,开发人员会在易用性和可选高级功能之间寻求平衡。 无论是构建 ASP.NET Core 网络应用程序还是控制台工具,开发人员都需要一个可靠的库,来处理从基本的二维码创建到高级定制的所有工作。
IronQR 为 .NET Core 提供了强大的解决方案,支持对文本字符串、URL 和日文 Unicode 文本进行编码。 有些人最初可能会寻找诸如 QRCoder 库(以其宽容的 MIT 许可而闻名)之类的 .NET 开源库,而 IronQR 则提供了一种具有机器学习功能和专门支持的企业级替代方案。
本教程演示了如何在您的 .NET Core 项目中生成 QR 代码、配置纠错级别以及使用机器学习驱动的检测功能读取现有代码。
如何在 .NET Core 中安装二维码库?
首先,打开 Visual Studio 并单击 "创建 "按钮启动一个新项目。 指定项目名称后,通过 NuGet 包管理器安装库只需几秒钟。 有些开发人员可能会搜索 QRCoder NuGet 软件包,而您可以通过在软件包管理器控制台中运行以下命令来安装 IronQR 框架:
Install-Package IronQR
或者使用 NuGet 软件包管理器用户界面,搜索 "IronQR "并点击安装按钮。 该库提供了与 .NET Core 3.x、.NET 5、6、7、8、9 和 10 兼容的 .NET 实现,是现代网络开发和多平台项目的理想选择。
安装完成后,请在文件顶部添加所需的 using 指令。IronQR 与 IronSoftware.Drawing 集成,实现跨平台图像处理,无需使用平台特定的依赖项,例如 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");
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");
Imports IronQr
Imports IronSoftware.Drawing
' Generate a QR code from input text
Dim qrcode As QrCode = QrWriter.Write("https://ironsoftware.com")
' Save as PNG image
Dim qrImage As AnyBitmap = qrcode.Save()
qrImage.SaveAs("website-qr.png")
输出
!a href="/static-assets/qr/blog/qr-code-net-core/qr-code-net-core-1.webp">QR 代码生成器 .NET Core:在 C# 中创建和读取快速响应代码:图片 1 - 从 URL 创建的 QR
QrWriter.Write() 方法将数据处理成 QrCodeData,其中包含 QR 符号的原始模块(黑白方块)。 IronQR 使用内部有效载荷生成器来确保输入文本被有效地编码为数字数据、字母数字文本字符串或字节数组。
来自 IronSoftware.Drawing 的 AnyBitmap 类提供了跨平台图像保存功能,因此相同的代码无需修改即可在 Windows、macOS 和 Linux 上运行。 您可以根据具体使用场景,将输出结果保存为 PNG、JPEG 或其他支持的格式。
如需查看实际演示,请访问生成QR码示例页面,该页面除了展示基本的生成流程外,还提供了其他配置选项。
什么是纠错级别,它们为什么重要?
纠错功能决定了 QR 符号在可扫描的同时能承受多大的损坏。 这是可选的高级功能之一,可实现品牌化和持久性。 QR标准(ISO/IEC 18004)定义了四个级别的纠错能力,每个级别都在数据容量与抗干扰能力之间进行权衡。
| 级别 | 数据恢复 | 最适合 |
|---|---|---|
| L (低) | 约7% | 清晰的数字显示屏 |
| M(中等) | 约15% | 通用用途 |
| Q(四分位数) | 约25% | 印刷材料 |
| H (高) | 约30% | 恶劣环境、徽标叠加 |
使用 QrOptions 配置错误校正:
using IronQr;
using IronSoftware.Drawing;
// Configure with high error correction level
var options = new QrOptions(QrErrorCorrection级别.High, 20);
// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Configure with high error correction level
var options = new QrOptions(QrErrorCorrection级别.High, 20);
// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Configure with high error correction level
Dim options As New QrOptions(QrErrorCorrectionLevel.High, 20)
' Generate QR code with options
Dim qrcode As QrCode = QrWriter.Write("Product-12345", options)
Dim qrImage As AnyBitmap = qrcode.Save()
qrImage.SaveAs("product-qr.png")
QR 输出
!a href="/static-assets/qr/blog/qr-code-net-core/qr-code-net-core-2.webp">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");
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");
Imports IronQr
Imports IronSoftware.Drawing
Dim styleOptions As New QrStyleOptions With {
.Dimensions = 300,
.Margins = 10,
.Color = Color.DarkBlue,
.Logo = New QrLogo With {.Bitmap = AnyBitmap.FromFile("company-logo.png")}
}
Dim qrcode As QrCode = QrWriter.Write("https://yourcompany.com")
Dim qrImage As AnyBitmap = qrcode.Save(styleOptions)
qrImage.SaveAs("branded-qr.png")
样式 QR 代码
!a href="/static-assets/qr/blog/qr-code-net-core/qr-code-net-core-3.webp">QR 代码生成器 .NET Core:在 C# 中创建和读取快速响应代码:图片 3 - 风格化 QR 代码输出。
Dimensions 属性设置输出图像的像素大小。 Margins 属性控制静默区——二维码周围的空白边框,扫描器需要正确识别符号边界。 QR代码自定义指南涵盖了更多样式属性,包括背景颜色和模块形状选项。
嵌入徽标时,其面积请控制在QR码总面积的 30% 以内。 超过此阈值可能会影响可读性,即使在 H 级校对下也是如此。 自定义后使用多个QR扫描应用进行测试是良好的实践。
如何在 ASP.NET Core 中生成二维码?
将二维码生成集成到 ASP.NET Core 中遵循模型视图控制器模式。 以下是一个 HomeController 类的实现,它直接从操作方法返回二维码图像:
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");
}
}
}
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");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
Namespace Examples
Public Class HomeController
Inherits Controller
Public Function GenerateQR(content As String) As IActionResult
Dim myQr As QrCode = QrWriter.Write(content)
Dim qrImage As AnyBitmap = myQr.Save()
Dim imageBytes As Byte() = qrImage.ExportBytes()
Return File(imageBytes, "image/png")
End Function
End Class
End Namespace
该端点接受 QR 代码数据作为参数,并直接返回生成的 PNG 图像。 该方法同样适用于 ASP.NET Core Web API 项目和 Razor 视图。
对于生产环境的 ASP.NET Core 应用程序,可以考虑使用 IMemoryCache 或 IDistributedCache 缓存频繁生成的二维码,以减少 CPU 开销。 静态 URL、产品标识符或活动链接对应的 QR 码在不同请求之间保持不变,因此非常适合进行缓存。
您还可以将 IronQR 集成到 Minimal API 端点中。 ASP.NET Core 集成教程提供了一个完整的示例,涵盖了依赖注入模式以及如何从 Blazor 组件中提供 QR 码图像。
使用顶级语句模式在 Program.cs 注册 IronQR 的许可证密钥,可以保持启动配置的整洁:
using IronQr;
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronQr;
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports 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");
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");
Imports IronQr
Imports IronSoftware.Drawing
' Generate QR that encodes Japanese Unicode text
Dim japaneseQr As QrCode = QrWriter.Write("こんにちは世界")
Dim qrImage As AnyBitmap = japaneseQr.Save()
qrImage.SaveAs("japanese-qr.png")
输出
!a href="/static-assets/qr/blog/qr-code-net-core/qr-code-net-core-4.webp">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}");
}
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}");
}
Imports IronQr
Imports IronSoftware.Drawing
' Load image containing QR code
Dim inputBmp As AnyBitmap = AnyBitmap.FromFile("scanned-document.png")
Dim imageInput As New QrImageInput(inputBmp)
' Read with ML-powered detection
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
For Each result In results
Console.WriteLine($"Found: {result.Value}")
Next
QR 代码读取输出
!a href="/static-assets/qr/blog/qr-code-net-core/qr-code-net-core-5.webp">QR 代码生成器 .NET Core:在 C# 中创建和读取快速响应代码:图片 5 - 从 QR 码读取数据。
QrResult 对象包含解码值以及位置元数据,您可以使用它在 UI 叠加层或文档处理管道中突出显示检测到的二维码区域。 这一特性使 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 运行时镜像外,无需额外安装任何系统软件包。 与需要原生 GDI+ 依赖项的库相比,这简化了您的 Dockerfile。 《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 代码生成与读取解决方案。 通过自动处理复杂的有效载荷生成器和原始模块及数据的组装,简化了开发周期。 无论您需要简单的开源库替代方案,还是具备可选高级功能的系统,IronQR 的跨平台架构都能确保其稳定运行。
如需继续使用 IronQR 进行开发,请参考以下资源:
- IronQR NuGet 包 -- 安装最新稳定版本
- IronQR API 参考文档 -- 完整的类和方法文档
- QR 码示例——适用于常见场景的即用型代码
- IronQR 教程——针对特定使用场景的分步指南
- 许可方案——为您的项目选择合适的方案
立即开始免费试用,无需任何前期承诺,即可充分体验 IronQR 的全部功能。
常见问题解答
如何使用 IronQR 在 .NET Core 中生成二维码?
您可以利用 IronQR 在 .NET Core 中生成 QR 代码,它提供了一个易于使用的库,可以创建基本的 QR 代码以及高级定制功能。
IronQR 在 QR 代码生成方面有哪些定制选项?
IronQR 提供各种定制选项,包括配置纠错级别和为 QR 代码添加徽标,确保它们满足您的特定要求。
IronQR for .NET 能否处理 ASP.NET Core 网络应用程序中的二维码生成?
是的, IronQR与ASP.NET Core Web 应用程序完全兼容,允许开发人员将二维码生成集成到他们的项目中。
是否可以用 IronQR for .NET Core 读取二维码?
当然,IronQR 可高精度读取 QR 码,利用机器学习技术确保精确检测和提取数据。
IronQR 为何适合正在寻找二维码生成器的开发人员?
IronQR 兼顾了易用性和高级功能,是需要多功能、可靠 QR 代码库的开发人员的理想选择。
IronQR 中是否有二维码处理的高级功能?
是的,IronQR 包括配置纠错、添加品牌元素和处理各种 QR 代码格式等高级功能。
IronQR 如何确保二维码读取的准确性?
IronQR 利用机器学习驱动的算法来提高 QR 码读取的准确性,确保即使在具有挑战性的条件下也能可靠地捕获数据。

