跳過到頁腳內容
使用 IRONQR

QR Code .NET Core Generator & Reader | IronQR for .NET

只要選擇了合適的函式庫,在 .NET Core 中建立 QR 碼產生器便相當簡單。 在評估 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 實作,使其成為現代網路開發和多平台專案的理想選擇。

安裝完成後,請在檔案頂部新增所需的 using 指令。 IronQR 與 IronSoftware.Drawing 集成,實現跨平台圖像處理,無需使用平台特定的依賴項,例如 System.Drawing.Common(此依賴項在 .NET 6 及更高版本中已棄用,無法用於跨平台)。

您可以透過檢查 .csproj 檔案中的專案包引用,或確認 NuGet 套件出現在套件管理器控制台輸出中來驗證安裝是否成功。 安裝完成後,IronQR API 參考文件將立即可用。

如何產生 QR 碼?

QrWriter 類別常與便捷的延伸方法搭配使用,使 QR 碼的生成變得簡單直觀。 以下是使用頂層語句僅需幾行程式碼即可生成 QR 碼的完整範例原始碼:

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");

// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");

// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Generate a QR code from input text
Dim qrcode As QrCode = QrWriter.Write("https://ironsoftware.com")

' Save as PNG image
Dim qrImage As AnyBitmap = qrcode.Save()
qrImage.SaveAs("website-qr.png")
$vbLabelText   $csharpLabel

輸出

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

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

來自 IronSoftware.DrawingAnyBitmap 類別提供了跨平台映像保存功能,因此相同的程式碼無需修改即可在 Windows、macOS 和 Linux 上運行。 您可以根據使用情境,將輸出結果儲存為 PNG、JPEG 或其他受支援的格式。

如需實際操作示範,請參閱"產生 QR 碼"範例頁面,該頁面除展示基本產生流程外,亦提供其他配置選項。

什麼是錯誤修正等級?

錯誤修正決定了 QR 符號在保持可掃描性的同時可承受的損害程度。 這是其中一項可選擇的進階功能,可讓您建立品牌形象並保持持久性。 QR 碼標準(ISO/IEC 18004)定義了四種錯誤校正等級,每種等級皆在資料容量與抗干擾能力之間取得平衡。

QR 碼的錯誤校正等級及其應用情境
難度等級 資料復原 最適合
L (低) 約7% 清晰的數位顯示器
M (中等) 約15% 一般用途
Q(四分位數) 約25% 印刷品
H (高) 約30% 嚴苛環境、標誌疊加

使用 QrOptions 設定錯誤修正:

using IronQr;
using IronSoftware.Drawing;

// Configure with high error correction level
var options = new QrOptions(QrErrorCorrection難度等級.High, 20);

// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Configure with high error correction level
var options = new QrOptions(QrErrorCorrection難度等級.High, 20);

// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Configure with high error correction level
Dim options As New QrOptions(QrErrorCorrection難度等級.High, 20)

' Generate QR code with options
Dim qrcode As 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 碼上疊加標誌,請務必使用 H 級。 額外的冗餘設計可彌補被標誌遮擋的模組,確保程式碼易於閱讀。 IronQR 錯誤校正文件說明了版本選擇如何與資料容量及校正等級相互作用。

如何使用標誌和顏色自訂 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") }
};

QrCode 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") }
};

QrCode 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 As 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 碼輸出

Dimensions 屬性設定輸出影像的像素大小。 Margins 屬性控制靜默區-二維碼周圍的空白邊框,掃描器需要正確辨識符號邊界。 QR 碼自訂指南涵蓋了額外的樣式屬性,包括背景顏色和模組形狀選項。

嵌入標誌時,其佔 QR 碼總面積的比例請控制在 30% 以下。 若超過此閾值,即使在 H 級校正下,仍可能影響可讀性。 在完成客製化後,建議使用多種 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 檢視。

對於生產環境的 ASP.NET Core 應用程序,可以考慮使用 IMemoryCacheIDistributedCache 快取頻繁產生的二維碼,以減少 CPU 開銷。 靜態網址、產品識別碼或活動連結的 QR 碼在不同請求間不會改變,因此非常適合進行快取。

您亦可將 IronQR 整合至 Minimal API 端點中。 ASP.NET Core 整合教學提供了一個完整的範例,內容涵蓋依賴注入模式,以及如何從 Blazor 元件提供 QR 碼圖像。

使用頂級語句模式在 Program.cs 註冊 IronQR 的許可證金鑰,可以保持啟動配置的整潔:

using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronQr

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

在呼叫任何 IronQR 方法之前,請先設定授權金鑰。 開發過程中,您可以使用從 IronQR 授權頁面取得的免費試用金鑰。

如何編碼日文 Unicode 文字?

IronQR 支援透過漢字模式編碼日文 Unicode 文字,此模式能以比標準編碼更少的資料區段,高效地編碼日文 Unicode 字元。 這能減少相同內容下 QR 碼的版本(大小),產生結構更簡單的符號,從而加快掃描速度。

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 碼的資料容量。 這對於針對日語使用者設計的應用程式至關重要,例如電子商務平台、餐廳菜單或旅遊資訊資訊站。

漢字模式會編碼 Shift JIS 字元集中的字元。 若您的應用程式在同一字串中同時處理日文與拉丁文字,IronQR 會於內部處理模式切換,並為每個區段選擇最有效的編碼方式。 關於 .NET 的國際化最佳實踐,Microsoft 的全球化文件提供了有關字元編碼的有用背景資訊。

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

IronQR 憑藉其基於機器學習的 QR 碼讀取器脫穎而出。 該機器學習模型即使在從不同角度讀取 QR 碼或處理部分遮蔽的圖像時,仍能達到高準確度——這相較於許多開源替代方案中採用的傳統閾值檢測演算法,具有顯著優勢。

using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
AnyBitmap 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
AnyBitmap 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 As AnyBitmap = 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 讀取資料

QrResult 物件包含解碼值以及位置元數據,您可以使用它在 UI 疊加層或文件處理管道中突出顯示檢測到的二維碼區域。 這項功能使 IronQR 成為文件處理與庫存管理系統的理想選擇。

該機器學習模型完全在裝置端運行,無需呼叫雲端 API,因此適用於氣隙環境及離線應用程式。 傳統的基於 CV 的偵測器(如 ZXing.NET)對於乾淨、正面朝上的條碼表現良好,但在面對眩光、旋轉或損壞等真實世界狀況時,往往難以應對。 IronQR 的機器學習方法能可靠地處理這些情境。

針對批次文件處理,您可以依序將多張圖片傳送至閱讀器,並彙整所有處理結果。 QR 碼讀取文件說明涵蓋從 PDF 頁面、相機串流以及靜態圖像檔案中讀取 QR 碼。

跨平台支援如何運作?

與依賴 System.Drawing.Common(在 .NET 6+ 中已棄用,無法跨平台使用)的解決方案不同,IronQR 使用 IronSoftware.Drawing 來實現真正的多平台專案。 您的程式碼可以在 Windows、macOS、Linux、iOS 和 Android 上一致地執行。 對於跨平台專案,無需尋求 SkiaSharp 的替代方案——IronQR 已在內部處理了平台抽象化。

.NET 跨平台文件闡述了 .NET 10 更廣泛的平台相容性。IronQR 完全遵循這些原則,完全避免使用特定平台的 API。

IronQR 支援以下部署目標:

  • .NET 10、9、8、7、6 —— 所有現代 .NET 版本
  • .NET Core 3.x -- 適用於尚未遷移至現代 .NET 的應用程式
  • Xamarin 和 MAUI -- 用於行動應用程式開發
  • Azure Functions 與 AWS Lambda -- 適用於無伺服器工作負載

在 Docker 容器中執行時,除了標準的 .NET Standard 執行環境映像檔外,無需額外的系統套件。 與需要原生 GDI+ 依賴項的程式庫相比,這簡化了您的 Dockerfile。 《IronQR 部署指南》涵蓋了容器化及雲端環境的配置說明。

IronQR 與其他 .NET QR 程式庫相比如何?

目前有多種 .NET QR 碼函式庫,各具不同的取捨。 了解這些差異有助於您為專案選擇合適的工具。

QRCoder 是一個採用 MIT 授權的開源函式庫。 它適用於簡單的 QR 碼生成,但不包含 QR 碼讀取功能或基於機器學習的偵測功能。 相較於 IronQR 對樣式化輸出的支援,其輸出選項較為有限。

ZXing.NET 是 Java ZXing 函式庫的 C# 移植版本。 它支援讀寫功能,但依賴傳統的電腦視覺技術,因此難以處理受損或旋轉的條碼。 跨平台影像處理需進行額外設定。

IronQR 提供整合生成與讀取功能的單一套件,其 Enterprise授權方案包含專屬技術支援。 ML 驅動的閱讀器、樣式化的輸出以及 IronSoftware.Drawing 整合使其成為生產應用程式更完整的解決方案。

如需詳細的功能比較,請參閱《IronQR 與 QRCoder 比較》及《IronQR 與 ZXing 比較》文章。

下一步計劃是什麼?

IronQR 提供一套完整的 .NET Core QR 碼生成與讀取解決方案。 透過自動處理複雜的酬載產生器和原始模組及資料的組裝,簡化了開發週期。 無論您需要的是簡單的開源程式庫替代方案,還是具備可選進階功能的系統,IronQR 的跨平台架構都能確保其穩定運作。

若要繼續使用 IronQR 進行開發,請參考以下資源:

立即開始免費試用,無需任何前期承諾,即可充分發揮 IronQR 的全部潛力。

常見問題解答

如何在 .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 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我