使用 IRONQR

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

發佈 2024年6月6日
分享:

介紹

QR碼已成為現代技術中不可或缺的一部分,提供了一種方便的方式來儲存和傳輸信息。 在網頁開發中,像我們將使用IronQR於ASP.NET Core中實現的QR碼生成器,提供了強大的動態QR碼生成功能。 QR碼生成器在票務系統、身份驗證、庫存管理等各種應用中是非常有價值的。 本文深入探討如何使用IronQR在ASP.NET Core中創建QR碼,這是一個為此目的而設計的強大庫。 ASP.NET Core 作為一個用於構建 Web 應用程式的多功能框架,提供了強大的能力來生成 QR 碼。 在本文中,我們將深入探討如何在 ASP.NET Core 中創建 QR 碼的過程。IronQR,一個強大的 QR 碼生成庫Iron Software.

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

  1. 使用 Visual Studio 創建 ASP.Net 專案

  2. 安裝IronQR從套件管理器中獲取程式庫

  3. 生成 QR Code

  4. 生成帶有格式化的 QR 碼

了解 IronQR

IronQR是專為 .NET 應用程式設計的高效能 QR 碼生成庫。 它提供了一個簡單且直觀的 API,用於生成具有各種自定義選項的 QR 碼。 IronQR 支援 .NET Standard,使其與包括 ASP.NET Core 在內的多種平台相容。 使用 IronQR,開發人員可以輕鬆生成具有不同數據類型、錯誤更正級別、尺寸和格式的 QR 碼。

主要特點

1. 讀取和創建 QR 碼

IronQR 使您能輕鬆生成和讀取 QR 碼。 無論您需要動態生成 QR 碼還是從現有 QR 碼中提取資訊,此程式庫都能滿足您的需求。

2. 友好的 API

該庫提供了一個使用者友好的 API,使開發者能夠快速將條碼功能整合到他們的 .NET 項目中。 您可以在幾分鐘內開始使用 QR 碼工作。

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+)

    它涵蓋了各種類型的專案,包括網絡專案(Blazor 和 WebForms),手機(Xamarin & MAUI),桌面(WPF & MAUI),和控制台應用程式。

4. QR偵測的機器學習模型

IronQR 使用先進的自訂機器學習模型來檢測 QR 代碼。 這確保準確且可靠的程式碼識別。 此外,還有瘦模式選項(非機器學習)適用於那些偏好輕量級方法的人。

5. 讀取 QR 碼

您可以從各種圖像格式讀取QR碼,包括:

  1. 圖像(jpg、png、svg、bmp)

  2. 多頁圖像(gif, tif, tiff)

  3. System.Drawing 位图

  4. IronDrawing 圖像(AnyBitmap)

6. 寫入 QR 碼

IronQR 允許您為不同的文檔類型生成 QR 碼,例如:

  1. 圖像(jpg, png, gif, tiff, bmp)

  2. System.Drawing 圖像

    1. 串流(MemoryStream, byte[])
  3. PDF(在現有 PDF 上蓋章)

7. 樣式化 QR 碼

透過調整大小、調整邊距和邊框、重新著色、添加標誌來自訂 QR 碼。

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 中生成 QR 碼: 圖 1 - 選擇 ASP.NET CORE 網頁應用程式範本

提供專案名稱和位置

在 ASP .NET Core 中生成 QR 碼的方法: 圖 2 - 命名專案並選擇保存位置

選擇所需的 .NET 版本。

如何在ASP.NET Core中生成QR Code:圖3 - 選擇正確的.NET版本。

點擊“create”按鈕以從模板生成應用程式代碼。

如何在ASP .NET Core中生成QR碼:圖4 - 點擊“create”按鈕生成模板代碼

步驟 2:從套件管理器安裝 IronQR 庫

安裝IronQR從 Visual Studio 套件管理器匯入庫,如下所示。

如何在 ASP .NET Core 中生成 QR Codes:圖 5 - 使用 Visual Studio 套件管理器搜尋 IronOCR 並安裝它

IronQR也可以使用 NuGet 套件管理器進行安裝。

如何在 ASP .NET Core 中生成 QR 碼:圖 6 - 使用 NuGet 套件管理器搜尋 IronOCR

步驟 3:生成 QR Code

現在,我們來建立一個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 Code 控制器

要新增控制器,右鍵點擊控制器資料夾並提供名稱,如下所示。

如何在ASP .NET Core中生成QR碼:圖7 - 通過點擊資料夾添加新控制器並給它命名

選擇空控制器。

在 ASP .NET Core 中如何生成 QR 碼:圖 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 碼沒有直接關係。 建立QRCode(QRCodeModel 生成QRCode)此方法是 QR 代碼生成邏輯的核心。 它接收一個 QRCodeModel 物件(包含 QR code 文本)作為參數。

在方法內部

它構建了一個用於保存生成的 QR Code 圖像的路徑。 使用 QrWriter.Write 創建一個 QR 碼對象(generateQRCode.QRCodeText). 將 QR 碼儲存為位圖圖像。 根據網頁請求詳情構建圖像 URL。 將ViewBag.QrCodeUri` 屬性設置為圖片 URL。 如果在此過程中發生任何異常,將會拋出它們。

QR Code 生成

QR碼的實際生成是在 CreateQRCode 方法中進行的。 `QrWriter.Write(generateQRCode.QRCodeText)調用基於提供的文本創建一個 QR 碼對象。

圖片儲存

生成的 QR 码以位图图像格式保存,使用 qrImage.SaveAs(文件路徑)`. 圖像文件路徑是根據網頁根路徑和所需的文件名構建的。

圖片網址

imageUrl 是使用網路請求的方案、主機和路徑基底構造的。 此 URL 指向可存取生成的 QR 碼圖像的位置。 總體而言,此控制器負責 QR Code 的生成、保存影像,並提供影像 URL 以供進一步使用。

將視圖添加到控制器

要新增視圖,請在 QrCodeController 類別中的 CreateQRCode 動作方法上按右鍵。

如何在 ASP .NET Core 中生成 QR 代碼:圖10 - 在 `QrCodeController` 類別中新增一個新的視圖

選擇「新增檢視」,然後選擇「Razor 檢視」。 點擊“新增”按鈕。

如何在 ASP .NET Core 中生成 QR 碼:圖 11 - 選擇“添加視圖”選項,然後選擇“Razor 視圖”,然後點擊“添加”

然後選擇先前生成的"Create"樣板和模型類。

如何在 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>
                <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 - 專案範例首頁

在文本框中輸入任何文字,然後點擊「建立」。這將會建立一個新的 QR 碼,如下所示。

如何在 ASP.NET Core 中生成 QR 代碼:圖 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 Code:圖15 - 以程式方式修改 QR Code 的顏色

許可證(提供試用)

想要試用IronQR的開發人員可以獲得試用許可證。這裡. 此授權密鑰需要放置在 appSettings.json 文件中。這樣做將移除上方圖片中顯示的浮水印。 這將移除上述圖片中顯示的浮水印。

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

結論

在本文中,我們探討了如何使用IronQR在ASP.NET Core中生成QR碼。 透過利用 IronQR 的強大功能,開發人員可以輕鬆地將 QR 碼生成功能集成到他們的網路應用程式中。 無論是用於票務、身份驗證或信息共享,QR碼提供了一種高效傳輸數據的多功能解決方案。 使用 IronQR,在 ASP.NET Core 中創建和自訂 QR 碼變得前所未有的簡單。 開始將 QR 碼生成整合到您的 ASP.NET Core 專案中,開啟動態資料編碼和分享的無限可能性。

< 上一頁
如何使用 .NET MAUI 進行 QR Code 掃描器
下一個 >
如何在ASP .NET中掃描QR碼

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 24,107 查看許可證 >