跳至页脚内容
使用 IRONQR
如何在 ASP .NET 中扫描 QR 代码

如何在 ASP .NET 中扫描 QR 代码

QR 码在我们的数字世界中已经无处不在,经常用于广告、零售、活动管理等领域。 对于在 ASP.NET Framework 中工作的开发人员来说,将二维码扫描功能集成到网络应用程序中可以增强用户体验和功能。 本文探讨了在 ASP.NET 应用程序中实施 QR 码扫描器的过程,包括所需的工具、库和逐步实施。 We will use IronQR, a powerful library for QR code generation from Iron Software to read QR codes.

如何在 ASP.NET 中扫描 QR 码

了解 QR 代码及其使用案例IronQR 简介IronQR 的主要优势和功能步骤 1:使用 Visual Studio 创建一个新的 ASP.NET 项目How to Scan QR Code in ASP .NET:图 1 - 使用 Visual Studio 创建一个新的 ASP.NET 项目。 接下来,您应提供项目名称和项目地点。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-2.webp">How to Scan QR Code in ASP .NET:图 2 - 提供项目名称和希望保存的位置。 选择 .NET 版本。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-3.webp">How to Scan QR Code in ASP .NET:图 3 - 选择您希望使用的 .NET 版本。 点击创建按钮将创建以下代码和项目。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-4.webp">How to Scan QR Code in ASP .NET:图 4 - 单击创建按钮,Visual Studio 将为您提供项目模板。

步骤 2:从 Visual Studio 软件包管理器安装 IronQR 库

How to Scan QR Code in ASP .NET:图 5 - 使用 Visual Studio 软件包管理器搜索 IronQR 并安装。 [IronQR](/csharp/qr/) can also be installed using [NuGet](https://www.nuget.org) 软件包管理器进行安装。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-6.webp">How to Scan QR Code in ASP .NET:图 6 - 通过 NuGet 软件包管理器搜索 IronQR。

步骤 3:上传 QR 图像并读取 QR 图像

创建 QR 代码控制器How to Scan QR Code in ASP .NET:图 7 - 单击文件夹添加新控制器并为其命名。 选择空控制器。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-8.webp">How to Scan QR Code in ASP .NET:图 8 - 单击提示符上的空控制器。 提供控制器名称。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-9.webp">How to Scan QR Code in ASP .NET:图 9 - 命名控制器 现在将以下代码添加到控制器中。 ```csharp // 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 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(); } } } ```

代码解释

1.保存上传的 QR 代码图像路径构建文件保存2.解码 QR 代码阅读图像文件初始化 QR 阅读器扫描二维码` ,其中每个 `QrResult` 都包含图像中检测到的 QR 代码的数据。 - 它使用 `results.First().Value` 提取第一个结果的值,并将解码后的信息存储在 `ViewBag.QrCodeText` 中。 译文假定图片至少包含一个 QR 码,并且不处理未检测到 QR 码的潜在错误。

3.准备和返回响应

图片 URL 构建查看返回向控制器类添加视图How to Scan QR Code in ASP .NET:图 10 - 在 `QrCodeController` 类中添加一个新视图。 选择 "添加视图 "选项,然后选择 "Razor View"。 单击 "添加"。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-11.webp">How to Scan QR Code in ASP .NET:图 11 - 选择 "添加视图 "选项,然后选择 "Razor 视图",再选择 "添加"。 然后选择之前生成的 "创建 "模板和模型类。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-12.webp">How to Scan QR Code in ASP .NET:图 12 - 选择先前生成的创建模板 . 现在将视图类中的代码替换为下图所示的代码。 ```cshtml @model IronQRScannerAsp.Models.QRCodeModel @{ ViewData["Title"] = "ScanQRCode"; }

ScanQRCode

QRCodeModel


Scanned Text:

@ViewBag.QrCodeText

@if (ViewBag.QrCodeUri != null) { @ViewBag related to @ViewBag.QrCodeText }
@section Scripts { @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} } ``` 现在,在 `Program.cs` 中更改以下代码,使上述视图成为默认路径: ```csharp app.MapControllerRoute( name: "default", pattern: "{controller=QrCode}/{action=Index}"); ``` 这将把默认路由从 `HomeController` 更改为我们的 `QrCode` Controller。 输入带 URL 的图片:。 !a href="/static-assets/qr/blog/asp-net-qr-code-scanner/asp-net-qr-code-scanner-13.webp">How to Scan QR Code in ASP .NET:图 13 - QR 码输入示例。

输出

How to Scan QR Code in ASP .NET:图 14 - 按照上述步骤操作后的输出示例。 在页面上选择一个 QR 代码图像,然后点击上传以解码 QR 代码。 此应用程序也可修改为从视频源读取并显示结果。

步骤 4:读取高级 QR 代码

Machine Learning Scan QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel); IEnumerable results1 = new QrReader().Read(scan_ML_and_normal); // Use Machine Learning Scan - High Speed QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel); IEnumerable results2 = new QrReader().Read(scan_ML_only); // Use Scan without Machine Learning QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan); IEnumerable results3 = new QrReader().Read(scan_normal_only); ``` 通过利用最新的 ML 技术,我们将 QR 码阅读器提升到了新的高度。 即使在复杂的条件下,复杂的 ML 模型也能提高应用程序解码 QR 代码的准确性和效率。 无论是从静态图像、视频流还是实时摄像机画面中读取 QR 码,ML 驱动的解决方案都能快速、可靠地提供所需的信息。 这项创新通过识别真实 QR 代码和标记潜在威胁,简化了数据检索并提高了安全性。 有了我们的 ML 技术,您可以确信您的二维码扫描功能处于最前沿,为您的用户提供流畅、安全的体验。

许可证(可试用)

结论

常见问题解答

如何在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 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。