IRONSOFTWAREHOME

如何在 Blazor 中构建二维码扫描器

Curtis Chau
Curtis Chau
Updated: 2026年3月3日

Blazor Server 是一个 .NET Web 框架,它在服务器端运行 C#,并通过 SignalR 连接将 UI 更新推送至浏览器。 IronQR 可直接集成到 Blazor Server 中,支持通过浏览器上传的图片进行服务器端二维码扫描,且无需任何 JavaScript 代码。

在本操作指南中,我们将构建一个 Blazor Server 页面,该页面支持图片上传,并使用 IronQR 解码其中的任何嵌入式二维码。

前提条件

  1. 已安装 ASP.NET 和 Web 开发工作负载的 Visual Studio 2022
  2. 针对 .NET 8 或更高版本的 Blazor Server 项目

安装 IronQR

请通过 Visual Studio 中的 NuGet 包管理器控制台安装 IronQR 库。 导航到Tools > NuGet Package Manager > Package Manager Console并运行:

PM > Install-Package IronQR

或者,在NuGet上搜索IronQR并安装最新版本。

Blazor 组件布局

扫描器UI使用Blazor内置的InputFile组件进行浏览器原生文件选择,按钮用于触发扫描,并使用段落显示解码结果。 无需 JavaScript 互操作。

添加一个新的Razor组件Scanner.razor,并使用以下标记:

@page "/scanner"
@using IronQr
@using IronSoftware.Drawing

<h3>QR Code Scanner</h3>

<InputFile OnChange="OnFileSelected" accept="image/*" />

<br /><br />

<button @onclick="ScanQRCode" disabled="@(qrImageSrc == null)">Scan QR Code</button>

<p>Result: @scannedText</p>
Text

示例输入

请使用下方的二维码作为测试图片。 将其保存到设备中,通过应用内的文件选择器上传,然后点击**"扫描二维码**"。 解码值应显示为https://ironsoftware.com

编码 https://ironsoftware.com 的示例二维码,用于测试 Blazor 二维码扫描器

示例二维码 — 编码地址:https://ironsoftware.com

使用 IronQR 扫描二维码

当文件被选择后,OnFileSelected将浏览器上传的文件流传输到服务器的临时文件。 当点击扫描按钮时,scannedText,Blazor会自动在组件中渲染。

将以下Scanner.razor

using IronQr;
using IronSoftware.Drawing;

private string? qrImageSrc;
private string scannedText = string.Empty;

private async Task OnFileSelected(InputFileChangeEventArgs e)
{
    var file = e.File;
    var tempPath = Path.Combine(Path.GetTempPath(), file.Name);
    await using var stream = file.OpenReadStream(maxAllowedSize: 10_000_000);
    await using var fs = File.Create(tempPath);
    await stream.CopyToAsync(fs);
    qrImageSrc = tempPath;
}

private async Task ScanQRCode()
{
    // Load the scanned QR code
    var inputBmp = AnyBitmap.FromFile(qrImageSrc!);
    var imageInput = new QrImageInput(inputBmp);
    var reader = new QrReader();

    // Read the scanned QR code
    var results = reader.Read(imageInput);

    // Check if a result was found
    var firstResult = results.FirstOrDefault();
    if (firstResult != null)
    {
        // Save the QR code value as a string
        scannedText = firstResult.Value;
    }
    else
    {
        scannedText = "No QR code found in the selected image.";
    }
}

IEnumerable<QrResult>,其中每个找到的QR码都有一个条目。 FirstOrDefault安全处理没有QR码的图像且不抛出异常。

输出

选择二维码图片并点击**"扫描二维码**"后,解码后的值将显示在控件下方的结果段落中。

使用 IronQR 的 Blazor 二维码扫描器 — 页面上显示解码结果

在 Blazor 组件中渲染的解码 QR 码值

下载项目

点击此处下载完整的 BlazorQrScanner 项目。

结论

IronQR 可无缝集成到 Blazor Server 应用程序中,无需使用 JavaScript。 QrReader.Read完全在服务器上处理解码。 相同的模式可以通过迭代完整结果集合而不是调用FirstOrDefault来扩展,以扫描每个图像中的多个QR码。

有关读取二维码及可用扫描模式的更多信息,请参阅《从图像读取二维码》和《使用扫描模式读取二维码》指南。

常见问题解答

在Blazor服务器应用程序中,IronQR的主要用途是什么?

IronQR主要用于Blazor服务器应用程序,使得即使没有JavaScript,也能从浏览器上传的图像中进行服务端QR代码扫描。

如何在Blazor项目中安装IronQR库?

要在Blazor项目中安装IronQR库,可以在Visual Studio中的NuGet包管理器控制台中运行安装命令,或者在NuGet上搜索'IronQR'并安装最新版本。

在Blazor中,用于处理QR代码扫描图像上传的组件是什么?

`InputFile`组件用于Blazor中处理图像上传,允许用户从浏览器中选择图像进行QR代码扫描。

IronQR如何在Blazor应用程序中解码QR代码?

在Blazor应用程序中,IronQR通过将选择的图像加载到`AnyBitmap`中,然后使用`QrReader.Read()`来提取并显示QR代码的数据。

IronQR可以处理带有多个QR代码的图像吗?

是的,IronQR可以处理带有多个QR代码的图像,通过遍历`QrReader.Read()`返回的`IEnumerable`集合。

在Blazor中实现QR代码扫描需要JavaScript吗?

不,在Blazor中实现QR代码扫描不需要JavaScript,因为整个过程在服务端处理。

`AnyBitmap`在IronQR扫描过程中扮演什么角色?

`AnyBitmap`用于解码上传文件的图像格式,为使用IronQR进行QR代码读取做好准备。

Blazor如何显示QR代码扫描的结果?

Blazor通过在组件的UI中的段落元素中渲染解码值来显示QR代码扫描的结果。

如果在Blazor扫描器中上传了一张没有QR代码的图像,会发生什么?

如果上传了没有QR代码的图像,调用`QrReader.Read()`返回的`IEnumerable`上的`FirstOrDefault`可以安全地处理情况,而不会抛出异常。

可以下载完整的Blazor QR扫描器项目吗?

是的,您可以从指南网页上的提供链接下载完整的Blazor QR扫描器项目。

Curtis Chau
技术作家

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

...
阅读更多

准备开始了吗?

Nuget Downloads 74,386版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronQR
nuget.org/packages/IronQR/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索“IronQR”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

  1. 下载并解压IronQR到您的解决方案目录中的~/Libs等位置
  2. 在Visual Studio解决方案资源管理器中,右键单击引用。选择浏览,“IronQR.dll”

许可证从$999开始

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