IRONSOFTWAREHOME
USING IRONQR

如何在 ASP .NET Core 中生成 QR 代码

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

二维码已成为现代技术的重要组成部分,提供了一种便捷的方式来存储和传输信息。 在 web开发中,像我们将在 ASP.NET Core中使用 IronQR实现的二维码生成器,提供了动态二维码创建的强大功能。 二维码生成器在票务系统、身份验证、库存管理等各种应用中是不可或缺的。 本文深入探讨了使用 IronQR在 ASP.NET Core中创建二维码的过程,这是为此目的而设计的强大库。 ASP.NET Core作为用于构建 web应用程序的多功能框架,提供了生成二维码的强大功能。 在本文中,我们将深入探讨如何使用来自Iron Software的强大二维码生成库IronQR在 ASP.NET Core中创建二维码的过程。

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

  1. 使用 Visual Studio创建 ASP.Net项目
  2. 从包管理器中安装IronQR
  3. 生成二维码
  4. 带格式的生成二维码

理解 IronQR

IronQR是用于 .NET应用程序的高性能二维码生成库。 它提供了一个简单且直观的 API,用于生成具有各种自定义选项的二维码。 IronQR支持 .NET Standard,使其与包括 ASP.NET Core在内的广泛平台兼容。 借助 IronQR,开发人员可以轻松生成具有不同数据类型、纠错水平、大小和格式的二维码。

主要特性

1. 读取和创建二维码

IronQR 使您可以轻松地生成和读取二维码。 无论您是需要动态地创建二维码还是从现有的二维码中提取信息,这个库都能满足您的需求。

2. 用户友好的 API

该库提供了一个用户友好的 API,使开发人员可以快速地将条码功能集成到他们的 .NET项目中。 您可以在短短几分钟内开始使用二维码。

3. 兼容性

IronQR支持多种 .NET版本,包括:

  1. C#、VB.NET、F#
  2. .NET Core (8, 7, 6, 5 和 3.1+)
  3. .NET Standard (2.0+)
  4. .NET Framework (4.6.2+)

它涵盖了从 web(Blazor & WebForms)、移动(Xamarin & MAUI)、桌面(WPF & MAUI)到控制台应用程序等各种类型的项目。

4. QR检测的机器学习模型

IronQR 使用先进的自定义机器学习模型来检测 QR 码。 这确保了准确和可靠的代码识别。 此外,还提供了一种瘦模式选项(非 ML),适合那些偏好轻量处理方式的人。

5. 读取二维码

您可以从包括以下几种格式的图像中读取二维码:

  1. 图片(jpg, png, svg, bmp)
  2. 多页图像(gif, tif, tiff)
  3. System.Drawing 位图
  4. IronDrawing 图像 (AnyBitmap)

6. 写入二维码

IronQR允许您为不同类型的文档写入二维码,例如:

  1. 图片(jpg, png, gif, tiff, bmp)
  2. System.Drawing 图像
  3. 流 (MemoryStream, byte[])
  4. PDF(在现有 PDF上添加印章)

7. 样式化二维码

通过调整大小、调整边距和边框、重新着色、添加徽标来自定义二维码

8. 错误处理与校正

IronQR提供详细的错误消息并支持自定义 QR 的纠错级别。

了解了这些知识后,让我们开始在 ASP.NET Core 中的应用程序中生成二维码。

第 1 步:使用 Visual Studio 创建一个新的 ASP.NET 项目

在深入二维码生成之前,让我们设置一个新的 ASP.NET Core 项目。 以下是启动新项目的步骤:

首先在 Visual Studio 中创建一个新项目,并选择 ASP.Net Core Web App 应用程序模板

在 ASP .NET Core 中生成 QR 代码的方法:图 1 - 选择 ASP.NET CORE 网络应用程序模板

提供项目名称和位置

在 ASP .NET Core 中生成 QR 代码的方法:图 2 - 为项目命名并选择您希望保存的位置

选择所需的.NET版本。

在 ASP .NET Core 中生成 QR 代码的方法:图 3 - 选择正确的 .NET 版本。

点击"创建"按钮以根据模板生成应用程序代码

在 ASP .NET Core 中生成 QR 代码的方法:图 4 - 点击

第 2 步:从包管理器安装 IronQR 库

按照以下所示从 Visual Studio 包管理器安装 IronQR 库。

在 ASP .NET Core 中生成 QR 代码的方法:图 5 - 使用 Visual Studio 包管理器搜索 IronOCR 并进行安装

IronQR也可以使用 NuGet 包管理器安装。

在 ASP .NET Core 中生成 QR 代码的方法:图 6 - 使用 NuGet 包管理器搜索 IronOCR

第 3 步:生成一个二维码

现在,让我们创建一个二维码应用。

创建 QRCode 模型

using System.ComponentModel.DataAnnotations;

namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText { get; set; }
    }
}

创建一个二维码控制器

要添加新控制器,请右键点击控制器文件夹并提供名称,如下所示。

在 ASP .NET Core 中生成 QR 代码的方法:图 7 - 点击文件夹添加新的控制器并命名

选择空控制器。

在 ASP .NET Core 中生成 QR 代码的方法:图 8 - 在提示中点击空白控制器

提供一个名称。

在 ASP .NET Core 中生成 QR 代码的方法:图 9 - 命名控制器

接下来,将以下代码集成到控制器中。

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

namespace GenerateQRCode.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult CreateQRCode(QRCodeModel generateQRCode)
        {
            try
            {
                string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
                // Create a QR Code object
                QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
                // Save QR Code as a Bitmap
                AnyBitmap qrImage = myQr.Save();
                // Save QR Code Bitmap as File
                qrImage.SaveAs(filePath);
                string fileName = Path.GetFileName(filePath); // qr code file
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}

代码解释

命名空间和类定义

代码以使用语句开始,这些语句导入必要的命名空间。 GenerateQRCode.Controllers 命名空间包含 QrCodeController 类。

控制器构造函数

QrCodeController 类有一个构造函数,它接受一个 IWebHostEnvironment 参数。 此参数由 ASP.NET Core 注入以处理与 web 托管相关的任务。

动作方法

  • Index():这个方法在访问时返回一个视图(大概是 HTML 页面)。 它似乎与 QR 码生成无直接关系。
  • CreateQRCode(QRCodeModel generateQRCode):这个方法是 QR 码生成逻辑的核心。 它接收一个 QRCodeModel 对象(大概包含 QR 码文本)作为参数。

方法内部

  • 构造用于保存生成的 QR 码图像的路径。
  • 使用 QrWriter.Write(generateQRCode.QRCodeText) 创建一个 QR 码对象。
  • 将 QR 码保存为位图图像。
  • 基于 web 请求详细信息构造图像 URL。
  • 使用图片 URL 设置 ViewBag.QrCodeUri 属性。
  • 如果在此过程中发生任何异常,则会抛出。

二维码生成

实际的 QR 码生成发生在 CreateQRCode 方法中。 QrWriter.Write(generateQRCode.QRCodeText) 调用基于所提供的文本创建一个 QR 码对象。

图像保存

生成的 QR 码使用 qrImage.SaveAs(filePath) 保存为位图图像。 图像文件路径根据 web 根路径和所需的文件名构造。

图像 URL

imageUrl 使用 Web 请求的方案、主机和路径基构造。 此 URL 指向可以访问生成的 QR 码图像的位置。 总体而言,此控制器处理 QR 码生成、图像的保存和提供图像 URL 以供进一步使用。

向控制器添加视图

要添加新视图,在 QrCodeController 类中右键点击 CreateQRCode 动作方法。

在 ASP .NET Core 中生成 QR 代码的方法:图 10 - 在 QrCodeController 类中添加新的视图

选择"添加视图"然后选择"Razor 视图"。 点击"添加"按钮。

在 ASP .NET Core 中生成 QR 代码的方法:图 11 - 选择添加视图选项,然后选择 Razor 视图,再点击添加

然后选择先前生成的"创建"模板和模型类。

在 ASP .NET Core 中生成 QR 代码的方法:图 12 - 选择之前生成的 Create 模板

现在在视图中替换以下代码

@model GenerateQRCode.Models.QRCodeModel

@{
    ViewData["Title"] = "Generate QR Code";
}

<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="CreateQRCode">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="QRCodeText" class="control-label"></label>
                <input asp-for="QRCodeText" class="form-control" />
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
                <a href="#" class="btn btn-primary">Create QR Code</a>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

同样对索引动作方法进行相同操作,以便在应用程序启动时不会抛出 POST 请求错误。

现在在 Program.cs 中,修改以下代码以将上述视图设为默认路由。

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=QrCode}/{action=Index}"
);

此操作将默认路由从 HomeController 修改为我们的 QrCodeController

现在,编译并运行项目。

在 ASP .NET Core 中生成 QR 代码的方法:图 13 - 项目的示例主页

在文本框中输入任何文本并点击"创建"。这将创建一个新的二维码,如下所示。

在 ASP .NET Core 中生成 QR 代码的方法:图 14 - 输入任意文本并点击创建以使用 IronQR 创建新的 QR 代码

为二维码添加样式

QrStyleOptions 用于样式化 QR 码生成。

[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
    try
    {
        string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");

        // Create a QR Code object
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px size
            Margins = 10,     // px margins
            Color = Color.YellowGreen // custom color
        };

        // Save QR Code with style options as a bitmap
        AnyBitmap qrImage = qrCode.Save(style);
        // Save QR Code Bitmap to File
        qrImage.SaveAs(filePath);

        string fileName = Path.GetFileName(filePath); // qr code file
        string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
        ViewBag.QrCodeUri = imageUrl;
    }
    catch (Exception)
    {
        throw;
    }
    return View();
}

输出

在 ASP .NET Core 中生成 QR 代码的方法:图 15 - 通过编程方式修改 QR 码的颜色

许可(提供试用)

对于想要测试 IronQR 的开发人员,可以在这里获取试用许可证。 需要将此许可证密钥放置在 appSettings.json 文件中。这样做将移除上面图像中显示的水印。

{
  "IronQr.License.LicenseKey": "My key"
}
JSON

结论

在本文中,我们探讨了如何在 ASP.NET Core 中使用 IronQR 生成 QR 码。 通过利用 IronQR 的强大功能,开发人员可以轻松地将 QR 码生成功能集成到他们的 web 应用程序中。 无论是用于票务、身份验证还是信息共享,QR 码都提供了一种用于高效传输数据的多功能解决方案。 借助 IronQR,在 ASP.NET Core 中创建和定制 QR 码从未如此简单。 开始将二维码生成功能集成到您的 ASP.NET Core 项目中,开启动态数据编码和共享的无限可能。

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