使用IRONQR

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

发布 2024年六月6日
分享:

简介

二维码已成为现代技术不可或缺的一部分,为信息的存储和传输提供了一种便捷的方式。在网络开发中,二维码生成器(如我们将在 ASP.NET Core 中使用 IronQR 实现的生成器)为动态二维码创建提供了强大的功能。QR 代码生成器在票务系统、身份验证、库存管理等各种应用中都非常宝贵。本文将深入探讨在 ASP.NET Core 中使用 IronQR 创建二维码的过程,IronQR 是一个功能强大的库,专为此目的而设计。ASP.NET Core 作为构建 Web 应用程序的通用框架,为生成二维码提供了强大的功能。在本文中,我们将深入探讨在 ASP.NET Core 中使用 IronQR 创建二维码的过程。 IronQR是一个功能强大的二维码生成库,可从 铁软件.

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

1.使用 Visual Studio 创建 ASP.Net 项目

2.安装 IronQR 软件包管理器中的库

3.生成 QR 码

4.生成带格式的 QR 码

了解 IronQR

IronQR 是一款适用于.NET 应用程序的高性能 QR 代码生成库。它提供了一个简单直观的 API,用于生成具有各种自定义选项的 QR 代码。IronQR 支持 .NET 标准,因此兼容包括 ASP.NET Core 在内的各种平台。有了 IronQR,开发人员可以毫不费力地生成具有不同数据类型、纠错级别、大小和格式的 QR 代码。

主要特点

1.读取和创建二维码

IronQR 可让您轻松生成和读取 QR 代码。无论您是需要动态创建 QR 代码,还是从现有 QR 代码中提取信息,该库都能满足您的需求。

2.用户友好的应用程序接口

该库提供了用户友好的 API,允许开发人员将条形码功能快速集成到其 .NET 项目中。只需几分钟,您就可以开始使用 QR 代码。

3.兼容性

IronQR 支持各种 .NET 版本,包括

1.C#、VB.NET、F#

  1. .NET Core (8、7、6、5 和 3.1+)

  2. .NET 标准 (2.0+)

  3. .NET框架 (4.6.2+)

它涵盖广泛的项目类型,包括网络 (Blazor 和 WebForms)手机 (Xamarin 和 MAUI)桌面 (WPF 和 MAUI)和控制台应用程序。

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

IronQR 使用先进的自定义机器学习模型来检测 QR 代码。这确保了准确可靠的代码识别。此外,还有一个超薄模式选项 (非ML) 为那些喜欢轻量级方法的人提供。

5.读取 QR 码

您可以读取各种图像格式的二维码,包括

1.图片 (jpg、png、svg、bmp)

2.多页图像 (gif, tif, tiff)

3.系统.绘图 "位图

4.铁画图像 (任意位图)

6.编写二维码

IronQR 允许您为不同类型的文档编写 QR 代码,例如

1.图片 (JPG、PNG、GIF、TIFF、BMP)

2.系统.绘图 "图像

3.数据流 (内存流", "字节[]`)

4.PDF (在现有 PDF 上盖章)

7.二维码的样式

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

8.错误处理和纠正

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

有了这些知识,让我们开始使用应用程序在 ASP.NET Core 中生成 QR 代码吧。

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

在深入研究 QR 代码生成之前,让我们先建立一个新的 ASP.NET Core 项目。以下是启动新项目的步骤:

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

如何在 ASP .NET Core 中生成二维码:图 1 - 选择 ASP.NET CORE 网络应用程序模板

提供项目名称和地点

如何在 ASP .NET Core 中生成二维码:图 2 - 命名项目和希望保存的位置

选择所需的 .NET 版本。

如何在 ASP .NET Core 中生成二维码:图 3 - 选择正确的 .NET 版本。

点击 "创建 "按钮,从模板中生成应用程序代码

如何在 ASP .NET Core 中生成二维码:图 4 - 单击 "create" 按钮生成模板代码

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

安装 IronQR 库,如下图所示。

如何在 ASP .NET Core 中生成二维码:图 5 - 使用 Visual Studio 软件包管理器搜索 IronOCR 并安装

IronQR 也可以使用 NuGet 软件包管理器进行安装。

如何在 ASP .NET Core 中生成二维码:图 6 - 使用 NuGet 包管理器搜索 IronOCR

第 3 步:生成 QR 码

现在,让我们创建一个 QR 码应用程序。

创建 QRCode 模型

using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText
        {
            get;
            set;
        }
    }
}
using System.ComponentModel.DataAnnotations;
namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText
        {
            get;
            set;
        }
    }
}
Imports System.ComponentModel.DataAnnotations
Namespace GenerateQRCode.Models
	Public Class QRCodeModel
		<Display(Name := "Enter QR Code Text")>
		Public Property QRCodeText() As String
	End Class
End Namespace
VB   C#

创建 QR 码控制器

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

如何在 ASP .NET Core 中生成二维码:图 7 - 点击文件夹添加新控制器并为其命名

选择空控制器。

如何在 ASP .NET Core 中生成二维码:图 8 - 单击提示符上的 空控制器

提供名称。

如何在 ASP .NET Core 中生成 QR 码:图 9 - 命名控制器

接下来,将以下代码整合到控制器中。

using GenerateQRCode.Models;
using IronQr;
using IronSoftware.Drawing;
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();
        }
    }
}
using GenerateQRCode.Models;
using IronQr;
using IronSoftware.Drawing;
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();
        }
    }
}
Imports GenerateQRCode.Models
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
Namespace GenerateQRCode.Controllers
	Public Class QrCodeController
		Inherits Controller

		Private ReadOnly _environment As IWebHostEnvironment
		Public Sub New(ByVal environment As IWebHostEnvironment)
			_environment = environment
		End Sub
		Public Function Index() As IActionResult
			Return View()
		End Function
		<HttpPost>
		Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
			Try
				Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
				If Not Directory.Exists(path) Then
					Directory.CreateDirectory(path)
				End If
				Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
				' Create a QR Code object
				Dim myQr As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
				' Save QR Code as a Bitmap
				Dim qrImage As AnyBitmap = myQr.Save()
				' Save QR Code Bitmap as File
				qrImage.SaveAs(filePath)
				Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
				Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
				ViewBag.QrCodeUri = imageUrl
			Catch e1 As Exception
				Throw
			End Try
			Return View()
		End Function
	End Class
End Namespace
VB   C#

代码解释

命名空间和类定义

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

控制器构造函数

QrCodeController类有一个构造函数,需要一个IWebHostEnvironment` 参数。该参数由 ASP.NET Core 注入,用于处理虚拟主机相关任务。

行动方法

索引():该方法返回一个视图 (大概是 HTML 页面) 访问。这似乎与 QR 代码生成没有直接关系。创建 QR 代码(QRCodeModel generateQRCode):该方法是 QR 代码生成逻辑的核心。它接收一个 QRCodeModel 对象 (大概包含 QR 码文本) 作为参数。

方法内部

为保存生成的二维码图像构建路径。使用 "QrWriter.Write "创建二维码对象(生成 QRCode.QRCodeText).将 QR 代码保存为位图图像。根据网络请求的详细信息构建图像 URL。用图像 URL 设置ViewBag.QrCodeUri` 属性。如果在此过程中出现任何异常,都会抛出。

QR 码生成

QR 代码的实际生成是在 CreateQRCode 方法中进行的。QrWriter.Write(生成 QRCode.QRCodeText)调用会根据提供的文本创建一个二维码对象。

图像保存

使用 qrImage.SaveAs 将生成的二维码保存为位图图像(文件路径).图像文件路径是根据网页根路径和所需文件名构建的。

图像 URL

图像 URL "是使用网络请求的方案、主机和路径基础构建的。该 URL 指向可以访问生成的二维码图像的位置。总之,该控制器负责生成二维码、保存图像并提供图像 URL 以供进一步使用

为控制器添加视图

要添加新视图,请右键单击 QrCodeController 类中的 CreateQRCode 操作方法。

如何在 ASP .NET Core 中生成二维码:图 10 - 在 QrCodeController 类中添加新视图

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

如何在 ASP .NET Core 中生成二维码:图 11 - 选择 添加视图 选项,然后选择 Razor 视图,再选择 添加。

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

如何在 ASP .NET Core 中生成二维码:图 12 - 选择之前生成的 创建 模板

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

@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>
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
@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>
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
model ReadOnly Property () As GenerateQRCode.Models.QRCodeModel
	ViewData("Title") = "Generate QR Code"
End Property
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"img-thumbnail" /> </div> </form> </div> </div> (Of div) <a asp-action="Index"> Clear</a> </div> section Scripts
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action
"@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> (Of div) <a asp-action
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Friend <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class
"form-group"> <img src="@ViewBag.QrCodeUri" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Friend <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class="form-group"> <img src
"form-group"> </div> <div class="form-group"> <img src
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Friend <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class="form-group"> </div> <div class
"text-danger"></span> </div> <div class="form-group"> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Friend <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> <span asp-validation-for="QRCodeText" class="text-danger"></span> </div> <div class
"QRCodeText" class="text-danger"></span> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Friend <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> <span asp-validation-for="QRCodeText" class
"control-label"></label> <span asp-validation-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Friend <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> <span asp-validation-for
"QRCodeText" class="control-label"></label> <span asp-validation-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Friend <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
"form-group"> <label asp-for="QRCodeText" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Friend <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
"text-danger"></div> <div class="form-group"> <label asp-for
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Friend <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
"ModelOnly" class="text-danger"></div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Friend <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
"CreateQRCode"> <div asp-validation-summary="ModelOnly" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Friend <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
"col-md-4"> <form asp-action="CreateQRCode"> <div asp-validation-summary
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Private Private Private Private Private Private Private Friend <h1> Generate QR Code</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-4"> <form asp-action
"row"> <div class="col-md-4"> <form asp-action
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Private Private Private Private Private Private Private Private Private Private Private Private Private Private Friend (Of h1) Generate QR Code</h1> (Of h4) QRCodeModel</h4> <hr /> <div Class="row"> <div class
	@
	If True Then
		Await Html.RenderPartialAsync("_ValidationScriptsPartial")
	End If
End Class
VB   C#

对索引操作方法也执行同样的操作,这样当应用程序启动时,就不会因 POST 请求而出错。

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

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

此操作将修改从 HomeController 到我们的 QrCode 控制器的默认路由。

现在,编译并运行该项目。

如何在 ASP .NET Core 中生成 QR 码:图 13 - 项目主页示例

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

如何在 ASP .NET Core 中生成二维码:图 14 - 输入任何文本并单击创建,即可利用 IronOCR 创建新的 QR 代码

为 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 obj
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px
            Margins = 10, // px
            Color = Color.YellowGreen
        };
        // Save QR Code as a any 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();
}
[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 obj
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px
            Margins = 10, // px
            Color = Color.YellowGreen
        };
        // Save QR Code as a any 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();
}
<HttpPost>
Public Function CreateQRCode(ByVal generateQRCode As QRCodeModel) As IActionResult
	Try
		Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode")
		If Not Directory.Exists(path) Then
			Directory.CreateDirectory(path)
		End If
		Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png")
		' Create a QR Code obj
		Dim qrCode As QrCode = QrWriter.Write(generateQRCode.QRCodeText)
		Dim style As New QrStyleOptions With {
			.Dimensions = 300,
			.Margins = 10,
			.Color = Color.YellowGreen
		}
		' Save QR Code as a any bitmap
		Dim qrImage As AnyBitmap = qrCode.Save(style)
		' Save QR Code Bitmap to File
		qrImage.SaveAs(filePath)
		Dim fileName As String = System.IO.Path.GetFileName(filePath) ' qr code file
		Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/GeneratedQRCode/" & fileName
		ViewBag.QrCodeUri = imageUrl
	Catch e1 As Exception
		Throw
	End Try
	Return View()
End Function
VB   C#

输出

如何在 ASP .NET Core 中生成 QR 码:图 15 - 以编程方式修改 QR 码的颜色

许可证 (可试用)

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

{
"IronQR.License.LicenseKey" : "My key"
}

结论

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

< 前一页
如何使用.NET MAUI进行QR码扫描
下一步 >
如何在ASP .NET中扫描QR码

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 14,702 查看许可证 >