跳過到頁腳內容
使用 IRONQR

QR Code Generator .NET Core:在 C# 中建立和讀取快速回應碼

在 .NET Core 中創建 QR Code 生成器從未如此簡單直接。 在評估 QR 代碼產生器的需求時,開發人員會尋求易用性與可選進階功能之間的平衡。 無論是建立 ASP.NET Core 網路應用程式或控制台工具,開發人員都需要一個可靠的函式庫,以處理從基本 QR 碼建立到進階客製化的所有工作。

IronQR 為 .NET Core 提供功能強大的解決方案,支援編碼文字串、URL 和日文 Unicode 文字。 有些人一開始可能會尋找 .NET 開源函式庫,例如 QRCoder 函式庫(以其許可的 MIT 授權而聞名),而 IronQR 則提供了具有機器學習功能和專用支援的企業級替代方案。

本教學示範如何在您的 .NET Core 專案中產生 QR 代碼、配置錯誤修正等級,以及使用機器學習驅動的偵測功能讀取現有代碼。

立即開始使用 IronQR 免費試用版

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

如何在 .NET Core 中安裝 QR 碼庫?

若要開始,請開啟 Visual Studio 並按一下建立按鈕以開始一個新專案。 一旦您指定了專案名稱,透過 NuGet Package Manager 安裝函式庫只需要幾秒鐘的時間。 有些開發人員可能會搜尋 QRCoder NuGet 套件,但您可以在套件管理員控制台執行下列指令來安裝 IronQR 框架:

Install-Package IronQR

或者,使用 NuGet Package Manager UI 搜索 "IronQR "并单击安装按钮。 該函式庫提供與 .NET Core 3.x、.NET 5、6、7、8、9 和 10 相容的 .NET 實作,使其成為現代網路開發和多平台專案的理想選擇。

如何產生 QR 碼?

QrWriter 類別,經常與方便的擴充方法一起使用,使 QR 代碼的產生變得非常簡單。 以下是一個完整範例的原始碼,使用傳統的命名空間和類別結構,只需幾行程式碼即可產生 QR 碼:

using IronQr;
using IronSoftware.Drawing;
namespace Examples
{
    public class QRCodeGenerator
    {
        public static void Main(string[] args)
        {
            // Generate a QR code from input text
            var qrcode = QrWriter.Write("https://ironsoftware.com");
            // Save as PNG image
            AnyBitmap qrImage = qrcode.Save();
            qrImage.SaveAs("website-qr.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
namespace Examples
{
    public class QRCodeGenerator
    {
        public static void Main(string[] args)
        {
            // Generate a QR code from input text
            var qrcode = QrWriter.Write("https://ironsoftware.com");
            // Save as PNG image
            AnyBitmap qrImage = qrcode.Save();
            qrImage.SaveAs("website-qr.png");
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing

Namespace Examples
    Public Class QRCodeGenerator
        Public Shared Sub Main(args As String())
            ' Generate a QR code from input text
            Dim qrcode = QrWriter.Write("https://ironsoftware.com")
            ' Save as PNG image
            Dim qrImage As AnyBitmap = qrcode.Save()
            qrImage.SaveAs("website-qr.png")
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

輸出

QR Code Generator .NET Core:在 C# 中建立與讀取快速回應碼:圖 1 - 從 URL 建立的 QR

QrWriter.Write() 方法會將資料處理成 QrCodeData ,其中包含 QR 符號的原始模組(黑白方塊)。 IronQR 使用內部有效負載產生器,以確保輸入的文字能有效地編碼為數值資料、字母數字文字串或位元組陣列。

什麼是錯誤修正等級?

錯誤修正決定了 QR 符號在保持可掃描性的同時可承受的損害程度。 這是其中一項可選擇的進階功能,可讓您建立品牌形象並保持持久性。

等級 資料復原 最適合
L (低) ~7% 乾淨的數位顯示器
M(中級) ~15% 一般用途
Q(四分位數) ~25% 印刷材料
H(高) ~30% 惡劣環境、標誌覆蓋

使用 QrOptions 設定錯誤修正:

using IronQr;
// Configure with high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate QR code with options
var qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
using IronQr;
// Configure with high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate QR code with options
var qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
Imports IronQr

' Configure with high error correction level
Dim options As New QrOptions(QrErrorCorrectionLevel.High, 20)
' Generate QR code with options
Dim qrcode = QrWriter.Write("Product-12345", options)
Dim qrImage As AnyBitmap = qrcode.Save()
qrImage.SaveAs("product-qr.png")
$vbLabelText   $csharpLabel

QR 輸出。

QR Code Generator .NET Core:在 C# 中建立和讀取快速回應碼:圖片 2 - 生成具有錯誤修正功能的 QR 碼

第二個參數指定允許的最大版本號,控制 QR 代碼的大小和資料容量。 在加入標誌圖片或實體穿著情境時,較高的錯誤修正是必要的。

如何使用標誌和顏色自訂 QR 碼的外觀?

IronQR 的 QrStyleOptions 可使用自訂顏色、尺寸和內嵌標誌來產生與品牌對齊的 QR 代碼:

using IronQr;
using IronSoftware.Drawing;
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,
    Margins = 10,
    Color = Color.DarkBlue,
    Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};
var qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");
using IronQr;
using IronSoftware.Drawing;
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,
    Margins = 10,
    Color = Color.DarkBlue,
    Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};
var qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

Dim styleOptions As New QrStyleOptions With {
    .Dimensions = 300,
    .Margins = 10,
    .Color = Color.DarkBlue,
    .Logo = New QrLogo With {.Bitmap = AnyBitmap.FromFile("company-logo.png")}
}

Dim qrcode = QrWriter.Write("https://yourcompany.com")
Dim qrImage As AnyBitmap = qrcode.Save(styleOptions)
qrImage.SaveAs("branded-qr.png")
$vbLabelText   $csharpLabel

樣式化 QR 碼

QR Code Generator .NET Core:在 C# 中建立和讀取快速回應碼:圖片 3 - 風格化 QR 碼輸出

如何在 ASP.NET Core 中產生 QR 碼?

將 QR 碼產生整合至 ASP.NET Core 遵循模型檢視控制器模式。 以下是 HomeController 類的實作:

using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace Examples
{
    public class HomeController : Controller
    {
        public IActionResult GenerateQR(string content)
        {
            QrCode myQr = QrWriter.Write(content);
            AnyBitmap qrImage = myQr.Save();
            byte[] imageBytes = qrImage.ExportBytes();
            return File(imageBytes, "image/png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace Examples
{
    public class HomeController : Controller
    {
        public IActionResult GenerateQR(string content)
        {
            QrCode myQr = QrWriter.Write(content);
            AnyBitmap qrImage = myQr.Save();
            byte[] imageBytes = qrImage.ExportBytes();
            return File(imageBytes, "image/png");
        }
    }
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc

Namespace Examples
    Public Class HomeController
        Inherits Controller

        Public Function GenerateQR(content As String) As IActionResult
            Dim myQr As QrCode = QrWriter.Write(content)
            Dim qrImage As AnyBitmap = myQr.Save()
            Dim imageBytes As Byte() = qrImage.ExportBytes()
            Return File(imageBytes, "image/png")
        End Function
    End Class
End Namespace
$vbLabelText   $csharpLabel

此端點接受 QR 碼資料作為參數,並直接回傳產生的 PNG 影像。 該方法可與 ASP.NET Core Web API 專案和 Razor 視圖無縫配合。

如何編碼日文 Unicode 文字?

IronQR 支援透過漢字模式編碼日文 Unicode 文字,與標準編碼相比,漢字模式使用較少的資料段有效率地編碼日文 unicode 文字:

using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Generate QR that encodes Japanese Unicode text
Dim japaneseQr As QrCode = QrWriter.Write("こんにちは世界")
Dim qrImage As AnyBitmap = japaneseQr.Save()
qrImage.SaveAs("japanese-qr.png")
$vbLabelText   $csharpLabel

輸出

QR Code Generator .NET Core:在 C# 中建立和讀取快速回應碼:圖片 4 - 以日文 Unicode 文字編碼的 QR Code

該函式庫在偵測到日文字元時,會自動選擇漢字模式,優化 QR code 的資料容量,無須手動操作或手動設定資料段。

如何使用機器學習讀取 QR 碼?

IronQR 透過其機器學習驅動的 QR 閱讀器脫穎而出。 即使是從角度或部分模糊的影像閱讀 QR 碼,ML 模型也能達到 99.99% 的準確度:

using IronQr;
using IronSoftware.Drawing;
// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var result in results)
{
    Console.WriteLine($"Found: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;
// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var result in results)
{
    Console.WriteLine($"Found: {result.Value}");
}
Imports IronQr
Imports IronSoftware.Drawing

' Load image containing QR code
Dim inputBmp = AnyBitmap.FromFile("scanned-document.png")
Dim imageInput As New QrImageInput(inputBmp)
' Read with ML-powered detection
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
For Each result In results
    Console.WriteLine($"Found: {result.Value}")
Next
$vbLabelText   $csharpLabel

QR 程式碼讀取輸出

QR Code Generator .NET Core:在 C# 中建立和讀取快速回應碼:圖 5 - 從 QR Code 讀取資料

這種能力使 IronQR 成為文件處理和庫存管理的理想選擇。

跨平台支援如何運作?

與依賴 System.Drawing.Common 的解決方案不同 (在 .NET 6+ 中已廢棄跨平台使用),IronQR 使用 IronSoftware.Drawing 來進行真正的多平台專案。 您的程式碼可以在 Windows、macOS、Linux、iOS 和 Android 上一致地執行。 對於多平台專案,SkiaSharp 替代品是不必要的-IronQR 在內部處理平台抽象。

結論

IronQR 為 .NET Core 中所有需求的 QR 代碼產生器提供完整的解決方案。 透過自動處理複雜的有效負載產生器以及原始模組和 QrCodeData 資料的組合,可簡化開發週期。 無論您需要的是簡單的 .NET 開源函式庫替代品,或是具有可選進階功能的強大系統,IronQR for .NET 的跨平台架構都能確保可靠的運作。

準備好在您的專案中實作 QR 代碼了嗎? 開始免費試用探索授權選項,釋放 IronQR 的全部潛能。 請造訪 API 文件以取得更多 程式碼範例

常見問題解答

如何在 .NET Core 中使用 IronQR 生成 QR 碼?

您可以利用 IronQR 在 .NET Core 中產生 QR 碼,IronQR 提供了一個易於使用的函式庫,可以建立基本的 QR 碼以及進階的客製化功能。

IronQR 在 QR 代碼生成方面有哪些自訂選項?

IronQR 提供多種客製化選項,包括設定錯誤修正等級,以及在 QR 代碼中加入標誌,確保它們符合您的特定需求。

IronQR 能否處理 ASP.NET Core 網路應用程式中的 QR 碼產生?

是的,IronQR 與 ASP.NET Core 網路應用程式完全相容,讓開發人員可以將 QR 碼產生功能無縫整合到他們的專案中。

IronQR for .NET Core 可以讀取 QR 碼嗎?

絕對的,IronQR 旨在高準確度地讀取 QR 碼,利用機器學習技術確保精確的偵測和資料擷取。

IronQR 為什麼適合正在尋找 QR 碼產生器的開發人員?

IronQR 在易用性和先進功能之間取得平衡,是需要多功能且可靠 QR 代碼函式庫的開發人員的理想選擇。

IronQR 是否有處理 QR 碼的進階功能?

是的,IronQR 包含進階功能,例如設定錯誤修正、新增品牌元素,以及處理各種 QR 碼格式。

IronQR 如何確保 QR 碼讀取的準確性?

IronQR 利用以機器學習為動力的演算法來提升 QR 碼讀取的精確度,即使在具挑戰性的條件下,也能確保可靠的資料擷取。

Jordi Bardia
軟體工程師
Jordi 最精通的是 Python、C# 和 C++,當他在 Iron Software 沒有發揮他的技能時;他在進行遊戲程式設計。Jordi 分擔產品測試、產品開發和研究的責任,為產品的持續改善增添無限價值。多樣化的經驗讓他不斷接受挑戰並投入其中,他說這是他在 Iron Software 工作最喜歡的方面之一。Jordi 在佛羅里達州邁阿密長大,在佛羅里達大學主修電腦科學和統計學。