跳過到頁腳內容
使用 IRONQR

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

在.NET應用程式中產生二維碼從未如此簡單。 使用合適的NuGet包,只需幾行程式碼即可建立二維碼、自訂其外觀並將其儲存為多種輸出格式。 IronQR提供企業級二維碼產生功能,並跨平台支援.NET Core、 .NET Framework和.NET 5-10。

本教學示範如何安裝IronQR NuGet套件並立即開始產生二維碼。 無論您是建立庫存系統、活動票務平台還是行銷應用程序, IronQR都能提供專業二維碼實施所需的工具。

立即開始在您的項目中使用 IronQR 並免費試用。

第一步:
green arrow pointer

如何安裝二維碼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";
$vbLabelText   $csharpLabel

有了許可證金鑰,您的應用程式就可以產生、讀取和自訂二維碼,而不會在輸出影像上添加浮水印。

如何產生你的第一個二維碼?

創建你的第一個二維碼只需要極少的程式碼。 QrWriter 類別處理二維碼生成,其預設值合理,適用於大多數使用情境:

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");
$vbLabelText   $csharpLabel

QR 圖碼輸出

NuGet二維碼產生器:只需幾行 C# 程式碼即可產生二維碼:圖 1 - 簡單的二維碼輸出

QrWriter.Write() 方法接受字串數據,並傳回一個包含 QR 符號的 QrCode 物件。 Save() 方法將其轉換為 AnyBitmap,支援編碼為各種影像格式或匯出向量資料以用於 XAML 路徑。 這種方法適用於 Windows、macOS 和 Linux,沒有特定於平台的依賴項——這與依賴 System.Drawing 的程式庫不同,後者從.NET 6 開始僅適用於 Windows。

上述三行程式碼模式涵蓋了最常見的場景:編碼字串、取得點陣圖、寫入檔案。在生產環境中,您通常會傳遞 URL 字串、產品識別碼或 JSON 數據,而不是純文字。

如何選擇合適的糾錯等級?

二維碼支援ISO/IEC 18004 二維碼標準中定義的四個糾錯級別,這些級別決定了二維碼在保持可掃描性的同時可以承受多大的損壞。 IronQR透過 QrOptions 類別支援所有四個層級:

IronQR支援的二維碼糾錯級別
等級復原能力最適合
L(低)約7%潔淨的環境,最大資料密度
M(中)約15%通用(預設)
Q(四分位數)約25%工業應用
H(高)約30%標誌、戶外標誌、部分遮擋
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrection等級.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(QrErrorCorrection等級.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");
$vbLabelText   $csharpLabel

輸出

NuGet二維碼產生器:只需幾行 C# 程式碼即可產生二維碼:圖 2 - 高糾錯率二維碼

更高的糾錯等級會創造更密集的二維碼符號,其中包含更多的原始模組,即使部分被遮蔽或損壞,也能使二維碼保持可讀性。 對於將要印在包裝上或嵌入標誌中的條碼,H 級是合適的選擇。對於僅用於數字顯示且無需擔心損壞的情況,M 級則兼顧了資料容量和可靠性。

在生產環境中,選擇錯誤的掃描等級是掃描失敗的常見原因。 如果您的二維碼將出現在實體材料上或與攝影機的距離不同,請使用 Q 級或 H 級,並在部署前使用多個掃描應用程式驗證輸出。

如何自訂二維碼外觀?

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

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");
$vbLabelText   $csharpLabel

樣式化二維碼輸出

NuGet二維碼產生器:只需幾行 C# 程式碼即可產生二維碼:圖 3 - 樣式二維碼

Dimensions 屬性以像素設定寬度和高度。 Margins 屬性控制靜默區-掃描器用來定位代碼邊界的圍繞二維碼符號的白色邊框。 將模組數量減少到低於建議的 4 個模組的最低數量可能會導致舊設備掃描失敗。

在二維碼中加入品牌識別可以增強品牌識別度。 此樣式系統可自動定位徽標,同時保持可掃描性——這比需要手動計算位置的開源替代方案具有顯著優勢。

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

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();
$vbLabelText   $csharpLabel

多種二維碼輸出格式

 NuGet二維碼產生器:只需幾行 C# 程式碼即可產生二維碼:圖 4 - 以不同檔案格式儲存的二維碼

ExportBytes() 方法在 Web 應用程式中特別有用,它允許您透過 HTTP 返回二維碼映像而不寫入磁碟。 您可以將位元組數組直接寫入回應流,或將其儲存在資料庫列中以便按需檢索。

IronQR提供 StampToExistingPdfPage 方法,用於在 PDF 文件中嵌入二維碼,從而可以直接在現有文件上放置二維碼。 它無需額外的 PDF 庫即可原生運行,這在需要盡量減少依賴項數量的微服務環境中非常重要。

如何比較IronQR NuGet套件和 QR 圖碼?

[QR 圖碼 函式庫](https://www.nuget.org/packages/QR 圖碼/)是.NET中用來產生二維碼的流行開源選項。 使用過 QR 圖碼 的開發者都熟悉它的多步驟 API,其中涉及 QRCodeData 以及單獨的渲染類,例如 PngByteQRCode。 IronQR將其簡化為單一 QrWriter.Write() 呼叫。

IronQR與 QR 圖碼 功能比較(針對.NET開發人員)
特徵IronQRQR 圖碼
跨平台渲染完全支援.NET 5-10僅適用於 Windows 的點陣圖渲染
機器學習驅動的閱讀檢測準確率達 99.9%僅限世代,無閱讀
PDF集成原生印章支持需要其他庫
商業支持24/5 工程支持僅限社區
徽標嵌入內置,自動定位需要手動疊加

QR 圖碼 在 Windows 環境下可以很好地用於基本二維碼產生。 IronQR 的機器學習模型能夠從任何角度提供卓越的二維碼讀取性能——這對於處理用戶提交的圖像(輸入品質無法控制)的應用程式至關重要。 單方法 API 還減少了交付可用功能所需的程式碼行數。

對於從 QR 圖碼 遷移的團隊,請參閱QR 圖碼 到IronQR遷移指南,以取得並排 API 對應。

如何在二維碼中編碼二進位資料?

除了文字之外, IronQR還支援對二進位二維碼有效載荷進行位元組數組編碼。 這對於無法用 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");
$vbLabelText   $csharpLabel

輸出

NuGet二維碼產生器:只需幾行 C# 程式碼即可產生二維碼:圖 5 - 二進位編碼二維碼

二進位編碼可讓您在二維碼中包含加密的有效載荷、序列化物件或任何二進位內容。 接收端的掃描器必須知道如何解釋二進位有效載荷——這在存取控制系統中很常見,其中二維碼包含簽名令牌而不是人類可讀的 URL。

請注意,二進位資料產生的二維碼比等效文字資料產生的二維碼更密集。 如果有效載荷大小會影響遠距離掃描的可靠性,請套用 H 級糾錯,並使用您預期用戶擁有的最小相機進行測試。

如何在C#中讀取二維碼?

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}");
}
$vbLabelText   $csharpLabel

這款由機器學習驅動的讀取引擎可以處理任意方向的影像,並能處理誤差校正閾值範圍內的部分損壞。 對於生產環境中的讀取場景,請查看二維碼讀取教學課程,以取得處理低品質輸入、多碼影像和掃描模式配置的指導。

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

Web 應用程式經常需要按需產生二維碼——用於使用者帳戶連結、一次性登入代碼或付款請求。 以下範例展示如何透過ASP.NET Core最小 API 端點直接提供二維碼影像:

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();
$vbLabelText   $csharpLabel

這種模式既適用於ASP.NET Core 的極簡 API,也適用於標準的 MVC 控制器。 ExportBytes() 呼叫避免了將臨時檔案寫入磁碟,這在檔案系統可能是唯讀或臨時的容器化部署中非常重要。

完整的ASP.NET Core整合演練,請參閱ASP.NET Core二維碼產生器教學Blazor二維碼產生器教學中也提供了 Blazor 專用指南。

如何為二維碼圖片添加邊距並調整大小?

控制尺寸和靜區對於確保列印品質至關重要。 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");
$vbLabelText   $csharpLabel

有關不同輸出媒體的尺寸和邊距要求的完整指南,請參閱有關調整二維碼影像大小和為二維碼添加邊距的操作指南文章。 建立二維碼圖像指南涵蓋了從許可證啟動到文件輸出的完整圖像創建工作流程。

針對特定的二維碼使用場景(包括 為名片生成二維碼構建動態二維碼生成器以及從圖像中讀取二維碼) ,專門的文章涵蓋了每種場景,並提供了完整的代碼示例。

下一步計劃是什麼?

IronQR將二維碼產生從多步驟流程簡化為簡單的NuGet整合。 安裝軟體包,呼叫 QrWriter.Write(),然後儲存結果-這三個操作涵蓋了大多數現實世界的場景。 同一個庫提供糾錯等級、自訂樣式、PDF 標記和機器學習驅動的閱讀功能。

IronQR文件提供了完整的 API 參考,包括進階主題,例如使用掃描模式讀取二維碼、批次處理和特定於平台的部署說明。 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。

如何使用IronQR在C#中生成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 for .NET相比如何?

IronQR在.NET 5-10上提供跨平台渲染(QRCoder僅限Window的bitmap渲染功能)、內置的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")回應返回。不需要臨時文件。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me