QR Code .NET Core Generator & Reader | IronQR for .NET
在 .NET Core 中建立 QR Code 生成器相當簡單,只要選擇正確的程式庫。 在評估 QR Code 生成器的需求時,開發人員需要在易用性和可選的高級功能之間取得平衡。 無論是構建 ASP.NET Core Web 應用程式還是控制台工具,開發人員都需要一個可靠的程式庫,能夠從基本 QR Code 建立到高級自定義進行一切處理。
IronQR 提供了適用於 .NET Core 的強大解決方案,支持編碼文字字串、URL 和日文 Unicode 文字。 雖然一些人可能最初尋找如 QRCoder 程式庫(以其寬鬆的 MIT 許可證而聞名)等 .NET 開源程式庫,IronQR 提供了具有機器學習功能和專用支持的企業級替代方案。
本教學演示了如何生成 QR Code、配置錯誤修正等級以及使用機器學習驅動的檢測來讀取現有程式碼,並將這一切放在您的 .NET Core 專案中。
如何在 .NET Core 中安裝 QR Code 程式庫?
首先,打開 Visual Studio 並點擊建立按鈕開始一個新專案。 一旦您指定了專案名稱,通過 NuGet 套件管理器安裝程式庫只需幾秒鐘。 雖然一些開發人員可能會搜尋 QRCoder NuGet 套件,但您可以通過在套件管理器控制台中運行以下命令來安裝 IronQR 框架:
Install-Package IronQR
或者,使用 NuGet 套件管理器 UI,搜尋 "IronQR" 並點擊安裝按鈕。 程式庫提供與 .NET Core 3.x、.NET 5、6、7、8、9 和 10 相容的 .NET 實現,非常適合現代 Web 開發和多平台專案。
安裝後,在文件頂部新增所需的 using 指令。IronQR 與 IronSoftware.Drawing 整合以進行跨平台圖像處理,消除了對於跨平台使用而在 .NET 6 及更高版本中被棄用的特定平台依賴如 System.Drawing.Common 的需求。
您可以通過檢查專案的包引用中的 .csproj 文件或通過確認 NuGet 套件出現在套件管理器控制台輸出中來驗證安裝是否成功。 一旦安裝完畢, IronQR API 參考 立即可用。
如何生成 QR Code?
QrWriter 類,通常與便捷的擴展方法一起使用,使得生成 QR Code 變得簡單。 這裡是一個完整範例的源程式碼,使用頂級語句在幾行程式碼內生成 QR Code:
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")
輸出

QrWriter.Write() 方法將資料處理為 QrCodeData,其中包含 QR 符號的原始模塊(黑白方塊)。 IronQR 使用內部有效載荷生成器來確保輸入文字被有效地編碼為數字資料、字母數字字串或位元組陣列。
來自 IronSoftware.Drawing 的 AnyBitmap 類提供跨平台圖像保存,因此相同的程式碼在 Windows、macOS 和 Linux 中無需修改即可運行。 您可以根據使用情況將輸出保存為 PNG、JPEG 或其他支持的格式。
如需實際演示,請參閱 生成 QR Code 範例 頁面,其中顯示了額外的配置選項以及基本生成流程。
什麼是錯誤修正等級及其重要性?
錯誤修正決定了在保持可掃描的情況下,QR 符號可以承受多少損壞。 這是一個可選的高級功能,允許進行品牌化和耐用性。 QR Code 標準(ISO/IEC 18004) 定義了四個等級的錯誤修正,每個等級均在資料容量和韌性之間做出平衡。
| 等級 | 資料恢復 | 最佳用途 |
|---|---|---|
| L (低) | ~7% | 清晰的數位顯示 |
| M (中) | ~15% | 一般用途 |
| Q (四分位) | ~25% | 印刷材料 |
| H (高) | ~30% | 惡劣環境,徽標覆蓋 |
using QrOptions 配置錯誤修正:
using IronQr;
using IronSoftware.Drawing;
// Configure with high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.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(QrErrorCorrectionLevel.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(QrErrorCorrectionLevel.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")
QR 輸出

第二個參數指定允許的最大版本號,控制 QR 程式碼的大小和資料容量。 在新增徽標圖像或實體磨損情境中需要更高的錯誤修正。
當您計劃在 QR Code 上覆蓋徽標時,請始終使用 H 級別。 額外的冗餘補償了被徽標隱藏的模塊,保持程式碼可掃描。 IronQR 錯誤修正文件 解釋了版本選擇與資料容量和修正等級的相互作用。
如何自定義 QR Code 外觀與徽標和顏色?
IronQR 的 QrStyleOptions 允許與品牌一致的 QR Code 生成,具有自定義顏色、尺寸和嵌入徽標。 這在營銷材料、產品包裝和活動票券中非常有用,在此時視覺一致性很重要。
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")
樣式化 QR Code

Dimensions 屬性設置輸出圖像的像素大小。 Margins 屬性控制安靜區域 -- 圍繞 QR 程式碼的空白邊界,掃描器需要正確識別符號邊界。 QR Code 自定義指南 涵蓋了額外的樣式屬性,包括背景顏色和模塊形狀選項。
嵌入徽標時,將其保持在不超過 QR Code 總面積的 30%。 即使在 H 級修正下,超過此閾值也可能影響可讀性。 自定義後使用多個 QR 掃描應用進行測試是好習慣。
如何在 ASP.NET Core 中生成 QR Code?
將 QR Code 生成整合到 ASP.NET Core 遵循模型視圖控制器模式。 這是一個 HomeController 類的實現,從動作方法直接返回 QR Code 圖像:
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
此端點接受 QR Code 資料作為參數並直接返回生成的 PNG 圖像。 此方法可在 ASP.NET Core Web API 專案和 Razor 視圖中同樣有效。
對於生產 ASP.NET Core 應用,考慮使用 IMemoryCache 或 IDistributedCache 快取經常生成的 QR Code 以減少CPU開銷。 靜態URL、產品標識符或事件連結的 QR Code 在請求之間不會改變,是快取的理想候選者。
您還可以將 IronQR 整合到 Minimal API 端點中。 ASP.NET Core 整合教程 提供了一個完整的範例,包括依賴注入模式和如何從 Blazor 組件服務 QR Code 圖像。
使用頂級語句模式在 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"
在調用任何 IronQR 方法之前設置許可金鑰。 在開發中,您可以使用從 IronQR 許可頁面 獲得的免費試用金鑰。
如何編碼日文 Unicode 文字?
IronQR 支持通過 Kanji 模式編碼日文 Unicode 文字,這種模式使用比標準編碼更少的資料段來高效地編碼日文 Unicode 字元。 這減少了相同內容的 QR Code 版本(大小),生成一個更不複雜的符號,掃描更快。
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")
輸出

當檢測到日文字元時,程式庫自動選擇 Kanji 模式,優化 QR Code 的資料容量,無需手動配置資料段。 這對於以日語為目標使用者的應用程式很重要,例如電子商務平台、餐廳選單或旅行資訊亭。
Kanji 模式從 Shift JIS 字元集編碼字元。 如果您的應用程式在同一字串中處理日語和拉丁文字,IronQR 會在內部處理模式切換,為每個段選擇最有效的編碼。 關於 .NET 中的國際化最佳實踐,Microsoft 全球化文件 提供了有用的上下文關於字元編碼。
如何使用機器學習讀取 QR Code?
IronQR 藉由其 機器學習驅動的 QR 讀取器 而與眾不同。 ML 模型即使在角度或部分模糊的圖片中讀取 QR Code 也能達到高精確度,這是優於許多開源替代方案中使用的傳統閾值式檢測算法的重大優勢。
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
QR Code 讀取輸出
![]()
QrResult 物件包含解碼值以及位置元資料,您可以使用這些資料在 UI 疊加或文件處理流水線中突出顯示檢測到的 QR Code 區域。 這項功能使得 IronQR 成為文件處理和庫存管理系統的理想選擇。
ML 模型完全在裝置上運行,無需雲 API 調用,因此適合氣隙環境和離線應用程式。 傳統的 CV 基檢測器例如 ZXing.NET 對於乾淨的正面程式碼工作良好,但在眩光、旋轉或損壞等實際情況中通常表現不佳。 IronQR 的 ML 方式可靠地處理這些情況。
對於批量文件處理,您可以按順序將多個圖像傳入讀取器並收集所有結果。 QR Code 讀取文件 除了靜態圖像文件外,還涵蓋從 PDF 頁面和攝像頭流進行讀取。
跨平台支持如何運作?
與依賴於 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 執行時映像外不需要額外的系統套件。 這簡化了您的 Dockerfile,相比需要本地 GDI+ 依賴的程式庫。 IronQR 部署指南 涵蓋了容器化和雲環境的配置。
如何比較 IronQR 和其他 .NET QR 程式庫?
幾個 .NET QR Code 程式庫存在,每個都有不同的取捨。 了解這些差異有助於您為您的專案選擇合適的工具。
QRCoder 是一個具有 MIT 許可證的開源程式庫。 它在生成對於簡單 QR Code 時工作良好,但不包含 QR Code 讀取能力或機器學習驅動的檢測。 與 IronQR 的樣式化輸出支持相比,輸出選項更有限。
ZXing.NET 是 Java ZXing 程式庫的 C# 移植版本。 它支持讀寫,但依賴於傳統電腦視覺技術,在處理損壞或旋轉的程式碼時表現欠佳。 跨平台圖像處理需要額外設置。
IronQR 提供生成和讀取於一個包內,擁有 企業授權,包含專用支持。 ML 驅動的讀取器、樣式化輸出和 IronSoftware.Drawing 整合使其成為生產應用的更完整解決方案。
欲了解詳細的功能比較,請參閱 IronQR 與 QRCoder 比較 和 IronQR 與 ZXing 比較 文章。
您的下一步是什麼?
IronQR 提供了一個完整的解決方案,用於在 .NET Core 中生成和讀取 QR Code。 通過自動處理複雜的有效載荷生成器和原始模塊及 QrCodeData 資料的組裝,簡化了開發週期。 無論您需要一個簡單的開源程式庫替代品還是具有可選高級功能的系統,IronQR 的跨平台架構確保了可靠的操作。
要繼續使用 IronQR 開發,請探索這些資源:
- IronQR NuGet 套件 -- 安裝最新的穩定版本
- IronQR API 參考 -- 完整類別和方法文件
- QR Code 範例 -- 可直接複製粘貼的常見場景程式碼
- IronQR 教程 -- 針對特定用例的逐步指南
- 許可選項 -- 為您的專案選擇恰當的計劃
開始您的免費試用,在不需要任何前期承諾的情況下解鎖 IronQR 的全部潛力。
常見問題
如何在 .NET Core 中使用 IronQR 生成 QR code?
您可以利用 IronQR 在 .NET Core 中生成 QR code,這提供了一個易於使用的程式庫,可以進行基本的 QR code 建立以及高級自訂功能。
IronQR 的 QR code 生成有哪些自訂選項?
IronQR 提供多種自訂選項,包括配置錯誤更正級別和將標誌新增到您的 QR code,以確保它們符合您的具體要求。
IronQR 能處理在 ASP.NET Core 網路應用程式中生成 QR code 嗎?
是的,IronQR 完全相容於 ASP.NET Core 網路應用程式,允許開發者將 QR code 生成整合到其專案中。
IronQR 能否在 .NET Core 中讀取 QR code?
當然,IronQR 被設計為能夠精確讀取 QR code,利用機器學習技術來確保精確的檢測和資料提取。
IronQR 為何適合尋找 QR code 生成器的開發者?
IronQR 提供了易用性與高級功能之間的平衡,對於需要多功能且可靠的 QR code 程式庫的開發者來說,是一個理想的選擇。
IronQR 是否有任何高級的 QR code 處理功能?
是的,IronQR 包含高級功能,如配置錯誤更正、新增品牌元素以及處理多種 QR code 格式。
IronQR 如何確保 QR code 讀取的準確性?
IronQR 利用機器學習驅動的演算法增強 QR code 讀取的準確性,確保即便在挑戰性的環境下也能可靠地捕獲資料。



