使用 IRONQR 如何在 ASP .NET 中扫描 QR 代码 Jordi Bardia 已更新:2026年1月18日 下载 IronQR NuGet 下载 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 QR码在我们的数字世界中无处不在,常用于广告、零售、活动管理等。 对于在ASP.NET框架中工作的开发者,将QR码扫描功能集成到Web应用程序中可以增强用户体验和功能性。 本文探讨了在ASP.NET应用程序中实施QR码扫描器的过程,涵盖所需的工具、库及逐步实现。 我们将使用IronQR,一个来自Iron Software的强大QR码生成库来读取QR码。 如何在ASP.NET中扫描QR码 使用Visual Studio创建一个ASP.NET项目。 从包管理器安装IronQR库。 上传QR图像并读取QR。 读取高级QR码。 理解QR码及其使用案例 QR(快速响应)码是二维条码,可以存储从URL到联系信息的各类信息,通常通过智能手机或专用扫描设备扫描。 在Web应用程序中,QR码可以用于多种用途,例如: *快速访问网站:*无需输入即可将用户引导至特定 URL。 活动票务:验证门票上的二维码以确认是否可进入活动现场。 支付系统:通过扫描二维码实现便捷支付。 产品信息:**提供有关产品的更多信息。 介绍IronQR IronQR是一个专为QR码生成和扫描设计的强大.NET库,以易用性提供强大的功能。 这个多功能库不仅能处理QR码,还能管理其他类型的条码,是在.NET生态系统中工作的开发者的首选。 在这里,我们将探讨如何将IronQR库集成到ASP.NET应用程序中以便进行QR码扫描。 IronQR的主要优势和特点 1.读取二维码: IronQR可以读取各种图像格式的二维码,包括 jpg、png、svg、bmp、gif、tif、tiff 等。 它还支持多页图像和自定义QR检测模型。 输出数据格式包括文本、网址、坐标等。 2.编写二维码:您可以生成二维码并将其保存为图像(jpg、png、gif、tiff、bmp)、流,甚至可以将其添加到现有的 PDF 中。 编码数据如文本,网址,字节和数字并生成QR码。 通过调整大小、调整边距、重新着色和添加徽标来自定义QR码样式。 3.错误处理和纠正: IronQR提供详细的错误信息和自定义 QR 错误纠正。 它确保故障容错,并支持空检查和校验和。 4.先进的机器学习模型: IronQR使用先进的机器学习模型进行二维码识别。 此模型确保在各种平台(包括移动、桌面和云环境)上准确可靠地读取QR码。 5.跨平台兼容性: IronQR专为 C#、F# 和 VB .NET设计,可在各种.NET版本上运行,例如.NET Core (8、7、6、5 和 3.1+)、. .NET Standard (2.0+)、. .NET Framework (4.6.2+)。 它支持不同的项目类型,包括Web(Blazor & WebForms)、移动(Xamarin & MAUI)、桌面(WPF & MAUI)和控制台应用程序。 7.广泛的二维码支持: IronQR擅长处理各种二维码和其他类型的条形码。 无论您是在处理标准QR码、Micro QR码、QR码条码图像,甚至特定格式如Aztec或Data Matrix,IronQR都能够满足您的需求。 IronQR还支持读取QR码条码的功能。 [IronQR](Iron Suite)的.NET API产品包括多种工具,用于办公文档、PDF编辑、OCR等。 步骤 1:使用 Visual Studio 创建新 ASP.NET 项目 首先创建一个新项目,并选择如下所示的MVC模板: 接下来,应为项目提供项目名称和位置。 选择 .NET 版本。 点击创建按钮将创建如下代码和项目。 步骤 2:从 Visual Studio 包管理器中安装 IronQR 库 从Visual Studio包管理器安装IronQR库,如下所示: IronQR也可以通过NuGet包管理器安装。 步骤 3:上传QR图像并读取QR图像 现在,让我们创建一个QR码应用程序。 创建 QRCodeModel // Import necessary namespaces using System.ComponentModel.DataAnnotations; namespace IronQRScannerAsp.Models { public class QRCodeModel { // Property to hold the uploaded QR code image [Display(Name = "Select QR Image")] public IFormFile QRCodeImage { get; set; } } } // Import necessary namespaces using System.ComponentModel.DataAnnotations; namespace IronQRScannerAsp.Models { public class QRCodeModel { // Property to hold the uploaded QR code image [Display(Name = "Select QR Image")] public IFormFile QRCodeImage { get; set; } } } $vbLabelText $csharpLabel 创建一个二维码控制器 通过右键单击控制器文件夹并提供名称来添加一个新的控制器,如下所示: 选择空控制器。 提供控制器名称。 现在将以下代码添加到控制器中。 // Import necessary namespaces using IronQr; using IronQRScannerAsp.Models; using IronSoftware.Drawing; using Microsoft.AspNetCore.Mvc; namespace IronQRScannerAsp.Controllers { // Controller to handle QR code scanning functionalities public class QrCodeController : Controller { private readonly IWebHostEnvironment _environment; // Constructor for dependency injection of the hosting environment public QrCodeController(IWebHostEnvironment environment) { _environment = environment; } // Displays the initial View public IActionResult Index() { ViewBag.QrCodeText = "Text"; return View(); } // Handles the POST request to scan a QR code [HttpPost] public IActionResult ScanQRCode(QRCodeModel qrImage) { string path = Path.Combine(_environment.WebRootPath, "ScanQRCode"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } // Define the file path for saving the uploaded QR image string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png"); using (var stream = System.IO.File.Create(filePath)) { qrImage.QRCodeImage.CopyTo(stream); // Save uploaded image to server } // Open the asset to read a QR Code from var bitmap = AnyBitmap.FromFile(filePath); // Load the asset into QrImageInput QrImageInput imageInput = new QrImageInput(bitmap); // Create a QR Reader object QrReader reader = new QrReader(); // Read the Input and get all embedded QR Codes IEnumerable<QrResult> results = reader.Read(imageInput); // Display scanned text and image on the view ViewBag.QrCodeText = results.First().Value; string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png"; ViewBag.QrCodeUri = imageUrl; return View(); } } } // Import necessary namespaces using IronQr; using IronQRScannerAsp.Models; using IronSoftware.Drawing; using Microsoft.AspNetCore.Mvc; namespace IronQRScannerAsp.Controllers { // Controller to handle QR code scanning functionalities public class QrCodeController : Controller { private readonly IWebHostEnvironment _environment; // Constructor for dependency injection of the hosting environment public QrCodeController(IWebHostEnvironment environment) { _environment = environment; } // Displays the initial View public IActionResult Index() { ViewBag.QrCodeText = "Text"; return View(); } // Handles the POST request to scan a QR code [HttpPost] public IActionResult ScanQRCode(QRCodeModel qrImage) { string path = Path.Combine(_environment.WebRootPath, "ScanQRCode"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } // Define the file path for saving the uploaded QR image string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png"); using (var stream = System.IO.File.Create(filePath)) { qrImage.QRCodeImage.CopyTo(stream); // Save uploaded image to server } // Open the asset to read a QR Code from var bitmap = AnyBitmap.FromFile(filePath); // Load the asset into QrImageInput QrImageInput imageInput = new QrImageInput(bitmap); // Create a QR Reader object QrReader reader = new QrReader(); // Read the Input and get all embedded QR Codes IEnumerable<QrResult> results = reader.Read(imageInput); // Display scanned text and image on the view ViewBag.QrCodeText = results.First().Value; string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png"; ViewBag.QrCodeUri = imageUrl; return View(); } } } $vbLabelText $csharpLabel 代码解释 提供的代码片段是一个名为 QrCodeController 的ASP.NET Core MVC 控制器,它旨在利用IronQR库处理二维码扫描功能。 以下是代码的简要描述: 1. 保存上传的QR码图像 路径构建 它在应用程序的Web根目录中构建一个用于保存QR码图像("ScanQRCode"目录)的文件路径。 它会检查此目录是否存在,如果不存在,则创建它,以避免在保存文件时出现找不到文件的错误。 文件保存 它会构建上传的二维码图像将保存的完整文件路径(filePath)("ScanQRCode/qrcode.png"))。 这将覆盖任何同名的现有文件,从而有效地处理新扫描,而不会积累文件。 它打开一个文件流,并将上传的图像(qrImage.QRCodeImage,很可能是一个表单文件)的内容复制到服务器上的指定位置。 2. 解码QR码 读取图像文件 使用 AnyBitmap.FromFile(filePath) 将保存的图像文件加载为适合二维码扫描的格式。 AnyBitmap 可能用作辅助类,将图像文件转换为 QR 阅读器可以处理的位图对象。 初始化QR阅读器 将加载的位图封装成 QrImageInput,该位图专门设计为二维码读取过程的输入。 实例化 QrReader, IronQR库的一个组件,配置为检测和解码二维码。 扫描QR码 调用 reader.Read(imageInput) 扫描图像中的二维码。 此方法返回一个 IEnumerable<QrResult>,其中每个 QrResult 包含来自图像中检测到的二维码的数据。 它使用 results.First().Value 提取第一个结果的值,并将解码后的信息存储在 ViewBag.QrCodeText 中。 这假设图像中至少包含一个QR码,并且不处理未检测到QR码的潜在错误。 3. 准备并返回响应 图像URL构建 构造一个指向服务器上保存的二维码图像的 URL (imageUrl)。 此URL是使用当前HTTP请求的方案、主机和路径基构建的,确保用户可以访问并查看。 构造的 URL 保存在 ViewBag.QrCodeUri。 视图返回 返回相同的视图(View()),该视图可能会向用户显示二维码图像和解码后的文本。 ViewBag 用于将二维码的解码文本和图像的 URL 传递给视图进行渲染。 向控制器类添加视图 添加新视图,右键单击 CreateQRCode 类中的 QrCodeController 操作方法。 选择"添加视图"选项,然后选择"Razor视图"。 点击"添加"。 然后选择先前生成的"创建"模板和模型类。 现在用下面显示的代码替换视图类中的代码。 @model IronQRScannerAsp.Models.QRCodeModel @{ ViewData["Title"] = "ScanQRCode"; } <h1>ScanQRCode</h1> <h4>QRCodeModel</h4> <hr /> <div class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> <label for="QRCodeImage">Select QR Image:</label> <input asp-for="QRCodeImage" class="form-control" type="file" /> </div> <div class="form-group"> <input type="submit" value="Upload" class="btn btn-primary" /> </div> </form> </div> </div> <div> <h3>Scanned Text:</h3> <h4>@ViewBag.QrCodeText</h4> @if (ViewBag.QrCodeUri != null) { <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> } </div> <div> <a asp-action="Index">Clear</a> </div> @section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} } 现在,在 Program.cs 中,修改以下代码,将上述视图设置为默认路由: app.MapControllerRoute( name: "default", pattern: "{controller=QrCode}/{action=Index}"); app.MapControllerRoute( name: "default", pattern: "{controller=QrCode}/{action=Index}"); $vbLabelText $csharpLabel 这会将默认路由从 HomeController 更改为我们的 QrCode 控制器。 输入带有URL的图像:https://ironsoftware.com/csharp/qr/。 输出 在页面上,选择一个QR码图像并点击上传以解码QR码。 此应用程序还可以修改为从视频源读取并显示结果。 步骤4:读取高级QR码 要读取高级QR码,IronQR提供以下设置。 // Import necessary namespaces using IronQr; using IronSoftware.Drawing; using IronQr.Enum; using System.Collections.Generic; // Load an image file as a bitmap var inputBmp = AnyBitmap.FromFile("QrImage.png"); // Use Auto => Machine Learning Scan QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel); IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal); // Use Machine Learning Scan - High Speed QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel); IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only); // Use Scan without Machine Learning QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan); IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only); // Import necessary namespaces using IronQr; using IronSoftware.Drawing; using IronQr.Enum; using System.Collections.Generic; // Load an image file as a bitmap var inputBmp = AnyBitmap.FromFile("QrImage.png"); // Use Auto => Machine Learning Scan QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel); IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal); // Use Machine Learning Scan - High Speed QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel); IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only); // Use Scan without Machine Learning QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan); IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only); $vbLabelText $csharpLabel 通过利用最新的ML技术,我们将QR码阅读器提升到新高度。 先进的ML模型提高了应用程序在复杂条件下解码QR码的准确性和效率。 无论是从静态图像、视频流还是实时摄像头读取QR码,ML驱动的解决方案都能快速可靠地提供所需信息。 这种创新简化了数据检索,并通过识别真正的QR码和标记潜在威胁来增强安全性。 使用我们的ML技术,您可以确信您的QR码扫描能力处于前沿,并为用户提供顺畅和安全的体验 许可(提供试用) 开发人员可以在这里获得IronQR试用许可证。 密钥需要放置在 appSettings.json 中。 { "IronQr.License.LicenseKey": "My Key" } 结论 在这篇文章中,我们探讨了如何使用IronQR在ASP.NET Core中扫描QR码。 将IronQR集成到ASP.NET应用程序中进行QR码扫描是一个简便的过程,可增强Web应用程序的功能,使其更具互动性和用户友好。 IronQR强大的功能和易用性使其成为开发者想要实现条码相关功能的绝佳选择。 常见问题解答 如何在ASP.NET应用程序中实现二维码扫描器? 要在ASP.NET应用程序中实现二维码扫描器,首先在Visual Studio中创建一个新项目,通过包管理器安装IronQR库,并添加代码处理使用IronQR强大功能进行二维码扫描。 在ASP.NET中设置QRCodeModel的步骤是哪些? 在ASP.NET中设置QRCodeModel,定义处理二维码数据的模型类,使用IronQR处理输入,并确保ASP.NET应用程序可以管理二维码扫描和结果显示。 IronQR可以读取不同图像格式的二维码吗? 是的,IronQR可以从多种图像格式读取二维码,包括jpg, png, svg, bmp, gif, tif, tiff和多页图像,使其在各种应用中具有通用性。 IronQR如何利用机器学习进行二维码扫描? IronQR采用先进的机器学习模型来提高二维码扫描的准确性,确保在不同环境和平台中可靠而精确地读取。 我可以使用什么平台进行IronQR的二维码扫描? IronQR支持广泛的平台包括Web应用程序(Blazor & WebForms), 手机应用(Xamarin & MAUI), 桌面应用(WPF & MAUI), 和控制台应用程序,兼容C#, F#, 和VB.NET。 如何在ASP.NET中处理二维码扫描的文件上传? 在ASP.NET中,通过设置一个控制器接收文件来管理二维码扫描的文件上传,然后使用IronQR有效地处理和扫描上传的二维码图像。 IronQR可以从视频流中扫描二维码吗? 是的,IronQR可以调整为从视频流中扫描二维码,扩展其在需要实时数据处理的动态环境中的应用。 IronQR有什么许可选项? IronQR提供可从Iron Software网站获得的试用许可。开发者应将许可证密钥放在appSettings.json文件中以激活试用。 在ASP.NET中使用IronQR进行二维码扫描有哪些好处? 在ASP.NET中使用IronQR进行二维码扫描的好处包括易于集成,支持多种图像格式,机器学习增强的准确性以及跨平台兼容性。 如何在ASP.NET中使用IronQR自定义二维码创建? 要在ASP.NET中使用IronQR自定义二维码创建,利用库的功能修改二维码大小、颜色和嵌入数据,根据特定的应用需求定制输出。 Jordi Bardia 立即与工程团队聊天 软件工程师 Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。 相关文章 已更新2026年3月1日 QR Code .NET Core Generator & Reader | IronQR for .NET QR 代码 .NET Core 教程:使用 C# 中的 IronQR 生成 QR 代码、配置纠错级别、添加徽标,并以 ML 驱动的精度读取 QR 代码。 阅读更多 已更新2026年2月27日 如何使用NuGet包在 C# 中生成二维码 安装IronQR NuGet包,即可在几分钟内使用 C# 生成二维码。支持跨平台.NET 5-10,支持自定义样式、PDF 嵌入和机器学习驱动的阅读。 阅读更多 已更新2026年3月1日 QR Code .NET Core:使用 C# 读取和生成二维码 学习如何使用IronQR在.NET Core中读取和生成二维码。内容涵盖机器学习驱动的读取、纠错级别、国际字符和跨平台生成,并提供 C# 代码示例。 阅读更多 如何在 ASP .NET Core 中生成 QR 代码如何在 C# 中扫描 QR 代码
已更新2026年3月1日 QR Code .NET Core Generator & Reader | IronQR for .NET QR 代码 .NET Core 教程:使用 C# 中的 IronQR 生成 QR 代码、配置纠错级别、添加徽标,并以 ML 驱动的精度读取 QR 代码。 阅读更多
已更新2026年2月27日 如何使用NuGet包在 C# 中生成二维码 安装IronQR NuGet包,即可在几分钟内使用 C# 生成二维码。支持跨平台.NET 5-10,支持自定义样式、PDF 嵌入和机器学习驱动的阅读。 阅读更多
已更新2026年3月1日 QR Code .NET Core:使用 C# 读取和生成二维码 学习如何使用IronQR在.NET Core中读取和生成二维码。内容涵盖机器学习驱动的读取、纠错级别、国际字符和跨平台生成,并提供 C# 代码示例。 阅读更多