跳至頁尾內容
USING IRONQR

如何使用NuGet套件在C#中生成QR程式碼

在.NET應用程式中生成QR碼從未如此簡單。 使用適當的NuGet套件,您可以建立QR碼,自定義其外觀,並將其儲存為多種輸出格式,僅需幾行程式碼。 IronQR提供企業級的QR碼生成,支援.NET Core、.NET Framework和.NET 5-10的跨平台支援。

本教程演示如何安裝IronQR NuGet套件並立即開始生成QR碼。 無論您是在構建庫存系統、活動票務平台還是行銷應用程式,IronQR提供專業QR碼實現所需的工具。

現在開始使用IronQR。
green arrow pointer

如何安裝QR碼NuGet套件?

通過NuGet套件管理器安裝IronQR只需要幾秒鐘。 在Visual Studio中打開NuGet套件管理器控制台並運行以下命令,或者在CLI環境中使用dotnet add package命令:

Install-Package IronQR

NuGet包自動處理所有依賴關係,確保與您的目標框架相容。 IronQR支援.NET Framework 4.6.2+、.NET Core 2.0+,以及.NET 5-10,是任何Visual Studio專案的多功能程式庫。

在撰寫任何程式碼之前,您需要一個免費試用授權金鑰。 在應用程式啟動時及早設置它,以便所有後續的呼叫都經過身份驗證:

using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronQr

' Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
$vbLabelText   $csharpLabel

一旦設置授權金鑰,您的應用程式將可以生成、讀取和自定義QR碼,且輸出圖像上不會有水印。

如何生成您的第一個QR碼?

建立您的第一個QR碼所需的程式碼最少。 QrWriter類用合理的預設值來處理QR碼的生成,這對於大多數使用情況都非常有效:

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Generate a QR code from text data
Dim myQr As QrCode = QrWriter.Write("Hello World")

' Save QR code as bitmap image
Dim qrImage As AnyBitmap = myQr.Save()

' Export to PNG file
qrImage.SaveAs("hello-qr.png")
$vbLabelText   $csharpLabel

QR碼輸出

NuGet QR碼生成器:使用C#僅需幾行程式碼生成QR碼:圖像1 - 簡單的QR輸出

QrCode物件。 AnyBitmap,支援編碼成多種圖像格式或導出XAML路徑的矢量資料。 這種方法在Windows、macOS和Linux上都能正常工作,無需平台特定的依賴關係——不像那些自.NET 6開始只能在Windows上使用依賴System.Drawing的程式庫。

上述三行模式涵蓋了最常見的情況:編碼字串、獲得位圖、寫入文件。對於生產環境,您可能會傳遞URL字串、產品標識符或JSON負載,而不是純文字。

如何選擇正確的錯誤更正級別?

QR碼支援ISO/IEC 18004 QR碼標準中定義的四種錯誤更正級別,這些級別決定了碼可以承受多少損壞而仍然可以掃描。 IronQR透過QrOptions類支援所有四個級別:

IronQR支援的QR碼錯誤更正級別
等級恢復能力最佳用途
L (低)~7%清潔環境、最大資料密度
M (中)~15%一般使用(預設)
Q (四分位)~25%工業應用
H (高)~30%標誌、戶外標誌、部分遮擋
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionLevel.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Configure high error correction level
Dim options As New QrOptions(QrErrorCorrectionLevel.High)

' Generate QR code with options
Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options)
Dim image As AnyBitmap = qr.Save()
image.SaveAs("high-correction-qr.png")
$vbLabelText   $csharpLabel

輸出

NuGet QR碼生成器:使用C#僅需幾行程式碼生成QR碼:圖像2 - 高更正級別的QR

較高的錯誤更正級別建立出更密集的QR符號,擁有更多的原始模塊,使即使部分被遮擋或損壞的情況下,碼仍然可以被讀取。 對於將印刷在包裝或嵌入標誌中的碼,選擇等級 H最合適。對於僅數位顯示的情況,損壞不是問題,等級 M在資料容量和可靠性之間取得平衡。

選擇錯誤的級別是生產中掃描失敗的常見原因。 如果您的QR碼將出現在實物材料上或距離相機不同的距離,請使用等級 Q或H並在部署前用多種掃描器應用程式驗證輸出。

如何自訂QR碼外觀?

IronQR透過QrStyleOptions提供廣泛的樣式選項,支援自訂顏色、尺寸、邊距和嵌入標誌。 品牌化的QR碼在行銷環境中表現更好,因為它們在視覺上將程式碼與一個已知的身份聯繫起來:

using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Create styled QR code with custom colors
Dim styleOptions As New QrStyleOptions With {
    .Dimensions = 300,    ' Width and height in pixels
    .Margins = 10,        ' Quiet zone in pixels
    .Color = Color.DarkBlue,
    .BackgroundColor = Color.White
}

Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim styledImage As AnyBitmap = qr.Save(styleOptions)
styledImage.SaveAs("styled-qr.png")
$vbLabelText   $csharpLabel

樣式化的QR輸出

NuGet QR碼生成器:使用C#僅需幾行程式碼生成QR碼:圖像3 - 樣式化的QR碼

Dimensions屬性同時設置寬度和高度的像素。 Margins屬性控制沈默區——包圍QR符號的白色邊框,掃描器用來定位程式碼邊界。 將邊距減少到推薦的最低4模塊以下可能會導致較舊裝置上的掃描失敗。

向QR碼新增標誌可增強品牌識別。 樣式系統會自動定位標誌,同時保持可掃描性——這是與開源替代方案相比的一大優勢,後者需要手動計算位置。

如何將QR碼儲存為不同的輸出格式?

IronQR支援多種輸出格式,包括PNG、JPEG、GIF、TIFF、BMP和SVG。 SaveAs方法會自動從文件擴展名檢測格式:

using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
Imports IronQr
Imports IronSoftware.Drawing

Dim qr As QrCode = QrWriter.Write("Format demonstration")
Dim image As AnyBitmap = qr.Save()

' Save to raster image formats
image.SaveAs("qr-output.png")
image.SaveAs("qr-output.jpg")
image.SaveAs("qr-output.gif")

' Get as byte array for HTTP responses or database storage
Dim pngBytes As Byte() = image.ExportBytes()
$vbLabelText   $csharpLabel

多QR碼輸出格式

NuGet QR碼生成器:使用C#僅需幾行程式碼生成QR碼:圖像4 - QR碼保存為不同的文件格式

ExportBytes()方法在網頁應用中特別有用,因為您可以直接通過HTTP返回QR碼圖像,而無需寫入磁碟。 您可以將字節陣列直接寫入響應流,或儲存在資料庫欄中以供按需檢索。

為了在PDF文件中嵌入QR碼,IronQR提供StampToExistingPdfPage方法,允許在現有文件上直接放置QR碼。 這可以本地使用,無需額外的PDF程式庫,這在微服務環境中很重要,因為您希望將依賴項數量最小化。

如何將IronQR NuGet套件與QRCoder比較?

QRCoder程式庫是.NET中生成QR碼的流行開源選擇。 使用過QRCoder的開發人員熟悉其多步驟API,涉及PngByteQRCode的單獨渲染類。 IronQR將這簡化為單個QrWriter.Write()調用。

IronQR與QRCoder功能比較,面向.NET開發人員
功能IronQRQRCoder
跨平台渲染完整支援.NET 5-10僅限Windows的位圖渲染
基於機器學習的閱讀99.9%的精確度檢測僅生成,無閱讀功能
PDF整合本地印章支援需要額外的程式庫
商業支援24/5工程支援僅社區支持
標誌嵌入內建,自動定位需要手動覆蓋

QRCoder在Windows環境中適合於基本的生成。 IronQR的機器學習模型提供卓越的QR碼閱讀能力,來自任何角度,這對於處理使用者提交圖像的應用至關重要,因為輸入質量無法控制。 單一方法API還減少了輸出工作功能所需的程式碼行數。

對於從QRCoder遷移的團隊,請參閱QRCoder轉向IronQR遷移指南,提供並排的API映射。

如何在QR碼中編碼二進制資料?

除了文字之外,IronQR還支援為二進制QR碼負載編碼字節陣列。 這對於加密令牌、序列化物件或無法表示為UTF-8字串的原始二進制標識符很有用:

using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Encode binary data -- useful for encrypted payloads or binary identifiers
Dim binaryData As Byte() = System.Text.Encoding.UTF8.GetBytes("Binary content example")
Dim qr As QrCode = QrWriter.Write(binaryData)
qr.Save().SaveAs("binary-qr.png")
$vbLabelText   $csharpLabel

輸出

NuGet QR碼生成器:使用C#僅需幾行程式碼生成QR碼:圖像5 - 二進制編碼的QR碼

二進制編碼允許您在QR符號中包括加密負載、序列化物件或任何二進制內容。 接收端的掃描器必須知道如何解釋二進制負載——這在存取控制系統中很常見,QR碼包含簽名令牌而非人類可讀的URL。

請記住,二進制資料產生的QR符號比等效文字資料更密集。 如果負載大小在距離上對掃描可靠性是個問題,請使用等級 H錯誤更正並使用您期望使用者擁有的最小相機進行測試。

如何在C#中讀取QR碼?

IronQR同時處理寫入和閱讀。 QrReader類接受圖像文件、位圖和相機幀,使其適合批處理和即時掃描情境:

using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}
Imports IronQr
Imports IronSoftware.Drawing

' Load an existing image containing a QR code
Dim inputImage = AnyBitmap.FromFile("qr-to-read.png")

' Read all QR codes in the image
Dim readResult As QrReadResult = QrReader.Read(inputImage)

For Each result As QrResult In readResult.QrCodes
    ' Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}")
Next
$vbLabelText   $csharpLabel

基於機器學習的閱讀引擎可以在任何方向處理圖像,並可處理高達錯誤更正限值的部分損壞。 對於生產中的閱讀情境,查看QR碼讀取教程,了解如何處理低質量輸入、多程式碼圖像和掃描模式配置。

如何在ASP.NET Core應用中使用IronQR?

網路應用經常需要按需生成QR碼——用於使用者帳戶連結、一次性登錄碼或付款請求。 以下範例展示了如何從ASP.NET Core最小API端點直接提供QR碼圖像:

using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();
using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();
Imports IronQr
Imports IronSoftware.Drawing

Dim builder = WebApplication.CreateBuilder(args)
Dim app = builder.Build()

' Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"

' Return a QR code PNG for a given URL parameter
app.MapGet("/qr", Function(data As String)
                      Dim qr As QrCode = QrWriter.Write(data)
                      Dim image As AnyBitmap = qr.Save()
                      Dim pngBytes As Byte() = image.ExportBytes()
                      Return Results.File(pngBytes, "image/png")
                  End Function)

app.Run()
$vbLabelText   $csharpLabel

這種模式適用於ASP.NET Core最小API和標準MVC控制器。ExportBytes()調用避免將臨時文件寫入磁碟,這在容器化部署中很重要,因為文件系統可能是只讀或短暫的。

欲了解完整的ASP.NET Core整合過程,查看ASP.NET Core QR碼生成器教程。 Blazor特定的指南也可在Blazor QR碼生成器教程中找到。

如何為QR碼影像新增邊距和調整大小?

控制尺寸和沈默區域對於印刷質量輸出至關重要。 IronQR透過QrStyleOptions公開這兩者,並且專門的指南涵蓋了每個詳細資料:

using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Specify dimensions and quiet zone for print output
Dim printOptions As New QrStyleOptions With {
    .Dimensions = 600,   ' High resolution for print
    .Margins = 20        ' Generous quiet zone for reliable scanning
}

Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim printImage As AnyBitmap = qr.Save(printOptions)
printImage.SaveAs("print-ready-qr.png")
$vbLabelText   $csharpLabel

欲了解不同輸出媒體上的大小和邊距要求的完整指南,請參閱調整QR碼影像大小向QR碼新增邊距的指南。 建立QR碼影像指南涵蓋了從授權啟動到文件輸出的完整影像建立工作流。

For specific QR code use cases -- including generating QR codes for business cards, building a dynamic QR code generator, and reading QR codes from images -- the dedicated articles cover each scenario with full code examples.

您的下一步是什麼?

IronQR將QR碼生成從多步驟過程轉化為簡單的NuGet整合。 您安裝套件,調用QrWriter.Write(),保存結果——這三個操作涵蓋了大多數現實情境。 同一程式庫中提供了錯誤更正級別、自訂樣式、PDF印章和基於ML的閱讀功能。

IronQR文件提供完整的API參考資料,包括先進主題如使用掃描模式讀取QR碼,批處理和平台特定的部署注意事項。 IronQR教程部分包括.NET MAUI、VB.NET和控制台應用程式的逐步指南。

開始免費試用以探索完整的功能集,無限制,或購買授權進行生產部署,並享有24/5工程支援。

常見問題

您如何安裝IronQR的NuGet套件?

在終端執行dotnet add package IronQR,或在Visual Studio開啟NuGet Package Manager Console,並運行Install-Package IronQR。該套件支援.NET Framework 4.6.2+、.NET Core 2.0+和.NET 5-10。

您如何在C#中使用IronQR生成QR碼?

呼叫QrWriter.Write("your-data")來建立QrCode物件,然後呼叫.Save()獲得AnyBitmap,最後呼叫.SaveAs("output.png")來寫入檔案。

IronQR支援哪些QR碼輸出格式?

IronQR支持PNG、JPEG、GIF、TIFF、BMP和SVG。SaveAs方法會自動從文件擴展名檢測格式。使用ExportBytes()獲取HTTP回應或資料庫儲存的位元組陣列。

您如何使用IronQR編輯QR碼的顏色和大小?

建立一個QrStyleOptions物件,並設置Dimensions(像素)、Margins(靜音區像素)、ColorBackgroundColor。將此傳遞給qr.Save(styleOptions)

IronQR支持哪些錯誤更正級別?

IronQR通過QrErrorCorrectionLevel支持所有四個ISO/IEC 18004級別:L(~7%恢復)、M(~15%,預設)、Q(~25%)和H(~30%)。在QrOptions物件中傳遞級別給QrWriter.Write()

IronQR與QRCoder在.NET中如何比較?

IronQR提供.NET 5-10的跨平台渲染(QRCoder的位圖渲染僅限Windows)、內建ML驅動的讀取(QRCoder僅生成)、本地PDF蓋章和單一方法API。QRCoder是一個免費的開源選項,適用於簡單的Windows生成。

您可以使用IronQR從圖像中讀取QR碼嗎?

可以。使用QrReader.Read(AnyBitmap.FromFile("path"))來掃描圖像。ML驅動的引擎能處理任何方向和部分損壞。遍歷readResult.QrCodes來存取每個解碼的result.Value

您如何在ASP.NET Core應用程式中生成QR碼?

在控制器或最小API處理器中呼叫QrWriter.Write(data),然後呼叫image.ExportBytes()並將位元組陣列作為Results.File(pngBytes, "image/png")回應。無需臨時檔案。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

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