Write QR Codes in C
介紹
借助 IronQR,開發人員可以為流行的圖像格式建立二維碼,並使用背景顏色、邊距、徽標對其進行自訂,甚至可以將其添加到 PDF 中。 對於高級用戶,它還提供錯誤修正和版本控制功能。
本文將透過範例探討 IronQR 的關鍵特性,幫助您了解如何在 C# 中使用它來編寫二維碼,並在您的專案中有效地應用它。
目錄
輸入資料 文字、網址、數字 -二進制和流 匯出二維碼 -另存為影像
- System.Drawing.Images
- IronSoftware.Drawing -在 PDF 上蓋章 -二維碼選項 -編碼 錯誤糾正 -二維碼版本 -字符編碼 -二維碼樣式
- 調整大小。 -頁邊距和邊框 -重新著色 -新增徽標
立即透過免費試用,在您的專案中開始使用 IronQR。
輸入資料
文字、網址、數字
IronQR 可以將包括文字、URL 和數字在內的各種資料類型轉換為二維碼。 無論您是建立用於行銷和溝通的二維碼連結或文字,用於庫存管理的數字代碼,還是將二進位資料或資料流編碼為可讀的二維碼,IronQR 都能提供您所需的一切支援。
此外,API 也非常簡單好用。 QrWriter 類別提供多種重載,可接受不同類型的資料作為輸入,從而降低複雜度並簡化流程。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-1.cs
using IronQr;
using IronSoftware.Drawing;
string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/qr/";
string alphanumeric = "WATERSKU-12356";
// Create QR code
QrCode textQr = QrWriter.Write(text);
// Save QR code as a bitmap
AnyBitmap textQrImage = textQr.Save();
// Save QR code as file
textQrImage.SaveAs("textQr.png");
QrCode urlQr = QrWriter.Write(url);
AnyBitmap urlQrImage = urlQr.Save();
urlQrImage.SaveAs("urlQr.png");
QrCode alphanumericQr = QrWriter.Write(alphanumeric);
AnyBitmap alphanumericQrImage = alphanumericQr.Save();
alphanumericQrImage.SaveAs("alphanumericQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Private text As String = "Hello, World!"
Private url As String = "https://ironsoftware.com/csharp/qr/"
Private alphanumeric As String = "WATERSKU-12356"
' Create QR code
Private textQr As QrCode = QrWriter.Write(text)
' Save QR code as a bitmap
Private textQrImage As AnyBitmap = textQr.Save()
' Save QR code as file
textQrImage.SaveAs("textQr.png")
Dim urlQr As QrCode = QrWriter.Write(url)
Dim urlQrImage As AnyBitmap = urlQr.Save()
urlQrImage.SaveAs("urlQr.png")
Dim alphanumericQr As QrCode = QrWriter.Write(alphanumeric)
Dim alphanumericQrImage As AnyBitmap = alphanumericQr.Save()
alphanumericQrImage.SaveAs("alphanumericQr.png")
二進制和流
同樣地,我們可以使用前述的 Write 方法,將二進位資料和資料流轉換為 QR 碼。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-2.cs
using IronQr;
using IronSoftware.Drawing;
using System.Text;
byte[] bytes = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/");
// Create QR code
QrCode bytesQr = QrWriter.Write(bytes);
// Save QR code as a bitmap
AnyBitmap qrImage = bytesQr.Save();
// Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Text
Private bytes() As Byte = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/")
' Create QR code
Private bytesQr As QrCode = QrWriter.Write(bytes)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = bytesQr.Save()
' Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png")
課程項目
{
static void Main()
{
// 建立二維碼寫入器實例
QrWriter writer = QrWriter.CreateQrCode();
// 範例二進位資料
byte[] data = { 0x01, 0x02, 0x03, 0x04 };
// 將二進位資料寫入二維碼
writer.Write(data)
.SaveAs("binary-qr.png");
// 使用記憶體流的範例
使用 (MemoryStream stream = new MemoryStream(data))
{
writer.Write(stream)
.SaveAs("stream-qr.png");
}
}
}
Write 方法具有重載,可同時接受位元組陣列和串流作為輸入。 對於二進位流,我們可以從位元組陣列建立 MemoryStream,然後將其轉換為 QR 碼。 當使用者需要對資料塊進行更精細的控制時,這非常有用,因為流可以更節省記憶體。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-3.cs
using IronQr;
using IronSoftware.Drawing;
using System.IO;
using System.Text;
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/"));
// Create QR code
QrCode streamQr = QrWriter.Write(stream);
// Save QR code as a bitmap
AnyBitmap streamQrImage = streamQr.Save();
// Save QR code bitmap as file
streamQrImage.SaveAs("streamQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Text
Private stream As New MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/"))
' Create QR code
Private streamQr As QrCode = QrWriter.Write(stream)
' Save QR code as a bitmap
Private streamQrImage As AnyBitmap = streamQr.Save()
' Save QR code bitmap as file
streamQrImage.SaveAs("streamQr.png")
匯出二維碼
IronQR 具有靈活性和適應性,可滿足各種需要不同文件格式的使用情境。 您可以使用 SaveAs 方法,將 QR 碼儲存為多種格式,例如 JPG、PNG、GIF 和 TIFF。
另存為影像
SaveAs 方法會根據 AnyBitmap 提供的檔案路徑,自動偵測檔案格式。 在此範例中,我指定了一個以 .png 結尾的檔案路徑。
SaveAs 方法時,請注意該方法沒有預設的圖片格式。 如果您輸入了未識別的擴展名或在文件路徑中輸入錯誤,圖像將會以錯誤的擴展名保存。:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-4.cs
using IronQr;
using IronSoftware.Drawing;
// Create a QR code object
QrCode qr = QrWriter.Write("hello world");
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qr.png")
系統.繪圖.圖像
將圖像轉換為 Microsoft 的 System.Drawing.Images 物件後,即可使用 Bitmap 類別將 QR 碼儲存至指定檔案路徑。 在此範例中,Save 方法會將 QR 碼儲存為 PNG 檔案,並儲存至路徑 qrBitmap.png。
System.Drawing.Com/mon 僅支援 Windows 平台。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-5.cs
using IronQr;
using System.Drawing;
// Create a QR code object
QrCode qr = QrWriter.Write("hello world");
// Save QR code as a bitmap
Bitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.Save("qrBitmap.png");
Imports IronQr
Imports System.Drawing
' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")
' Save QR code as a bitmap
Private qrImage As Bitmap = qr.Save()
' Save QR code bitmap as file
qrImage.Save("qrBitmap.png")
IronSoftware.繪圖
由於 System.Drawing.Com/mon 缺乏跨平台相容性,開發人員在維護跨平台應用程式時可能會遇到問題。 IronQR 可同時支援 System.Drawing.Com/mon 與 IronSoftware.Drawing。
IronQR 使用來自 IronSoftware.Drawing 的 AnyBitmap 類別,這是一個普遍相容的 Bitmap 類別,會隱含地轉換為以下類型:
System.Drawing.BitmapSystem.Drawing.ImageSkiaSharp.SKBitmapSixLabors.ImageSharpMicrosoft.Maui.Graphics.Platform.PlatformImage
憑藉這套強大的開源程式庫,IronQR 實現了跨平台支援,並與 .NET Standard 以及 .NET Framework 4.6.2+。 若要瞭解有關資料庫的更多資訊,請參閱 IronSoftware.Drawing 網站。
在 PDF 上蓋章
IronQR 允許開發者在現有的 PDF 文件上新增二維碼,方便其他人快速存取連結或其他資源。 支援在單頁和多頁上新增二維碼。
單頁蓋章
建立 QR 碼後,請從 QrCode 物件呼叫 StampToExistingPdfPage 方法。 此方法需要檔案路徑、座標(x 和 y)、頁碼,如果 PDF 受密碼保護,則還需要密碼(可選)。 提供參數後,方法會產生二維碼並儲存 PDF 檔案。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-6.cs
using IronQr;
// Create a QR code object
QrCode qr = QrWriter.Write("hello world");
string filepath = "example.pdf";
int x = 100;
int y = 150;
int page = 1;
// Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page);
Imports IronQr
' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")
Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private page As Integer = 1
' Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page)
在多頁上蓋章
與上述範例類似,主要差異在於 StampToExistingPdfPages 方法接受一組頁碼,而非僅一個頁碼。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-7.cs
using IronQr;
using System.Collections.Generic;
// Create a QR code object
QrCode qr = QrWriter.Write("hello world");
string filepath = "example.pdf";
int x = 100;
int y = 150;
List<int> pages = new List<int>();
pages.Add(1);
pages.Add(2);
pages.Add(3);
pages.Add(4);
// Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages);
Imports IronQr
Imports System.Collections.Generic
' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")
Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private pages As New List(Of Integer)()
pages.Add(1)
pages.Add(2)
pages.Add(3)
pages.Add(4)
' Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages)
兩個範例的輸出

QR 圖碼選項
IronQR 提供豐富的自訂選項,可對二維碼的行為和功能進行微調。 QrOptions 類別提供數個參數,例如版本控制、編碼類型、字元編碼以及錯誤校正等級。 讓我們更詳細地探討一下這些選項。
編碼
IronQR 支援多種類型的二維碼,可用於建立和讀取。 以下是支援的類型:
QRCode:這是當今常見的標準 QR 碼。 它最多可以儲存 7,089 個數字字元或 4,296 個字母數字字元。MicroQRCode:標準 QR 碼的縮小版,最多可儲存 35 個數字或 21 個英數字元。RMQRCode:矩形微型 QR 碼是 QR 碼的緊湊版本,其長寬比具有高度彈性。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-8.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions
{
// Change encoding to micro QR code
Encoding = IronQr.Enum.QrEncoding.MicroQRCode,
};
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing
Private options As New QrOptions With {.Encoding = IronQr.Enum.QrEncoding.MicroQRCode}
' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
錯誤糾正
IronQR 使用標準的 QR 糾錯技術,確保產生的所有 QR 碼都具有容錯性和可靠性,即使在惡劣條件下也是如此。 此外,IronQR 還允許您完全控制誤差修正級別,以便進行進一步的微調。
QrErrorCorrectionLevel 提供四種錯誤修正等級:
Highest: 30% 錯誤修正High: 25% 錯誤修正Medium: 15% 錯誤修正Low: 7% 錯誤修正
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-9.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions
{
// Change error correction level to medium
ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium,
};
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing
Private options As New QrOptions With {.ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium}
' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
更高的糾錯能力在讀取二維碼時能提供更大的容錯能力,因此與糾錯能力低的二維碼相比,它更有可能在較低的解析度下被掃描。 您可以根據自己的使用場景進行測試。

QR 圖碼版本
您可以調整二維碼版本以儲存更多資料。 較高版本適用於庫存或物流,而較低版本適用於較小的資料,例如短連結。 只需變更 Version 物件中的 QrOptions 屬性,並將其傳遞給 Write 方法,即可根據需求產生 QR 碼。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-10.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions
{
// Change QR code version to 40
Version = 40,
};
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing
Private options As New QrOptions With {.Version = 40}
' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")

從輸出結果可以看出,與版本 5 相比,版本 40 的二維碼非常複雜且密集。
低版本需要更精確的掃描,如果沒有高解析度掃描儀,可能難以掃描。 但是,即使使用解析度較低的相機,更高版本的檔案也更容易掃描。 有關根據容量選擇二維碼版本的更詳細指南,請參閱二維碼版本清單。
字元編碼
此選項決定二維碼的編碼方式。 在我們的範例中,我們將其變更為"UTF-32",而預設字元編碼為"ISO-8859-1"。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-11.cs
using IronQr;
using IronSoftware.Drawing;
QrOptions options = new QrOptions
{
// Change character encoding to UTF-32
CharacterEncoding = "UTF-32"
};
// Create QR code
QrCode qr = QrWriter.Write("1234", options);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();
// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing
Private options As New QrOptions With {.CharacterEncoding = "UTF-32"}
' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()
' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
QR 圖碼樣式
除了易於使用的方法和處理輸入資料的靈活性之外,IronQR 還提供了許多自訂和設定二維碼樣式的選項,使二維碼獨一無二。 QrStyleOptions 類別提供多種參數,用於自訂 QR 碼的各個方面。 讓我們來探討一下可行的方案。
調整大小
若要調整 QR 碼的大小,您可以設定 Dimensions 物件的 QrStyleOptions 屬性,然後將其傳遞給 Save 方法。 預設情況下,二維碼會儲存為 300 像素。 在這個例子中,我們將二維碼儲存為 600px 而不是 300px。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-12.cs
using IronQr;
using IronSoftware.Drawing;
QrStyleOptions styleOptions = new QrStyleOptions()
{
// Change the dimensions to 600px
Dimensions = 600,
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png");
Imports IronQr
Imports IronSoftware.Drawing
Private styleOptions As New QrStyleOptions() With {.Dimensions = 600}
Private url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Private qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png")

頁邊距和邊框
若要調整邊距與邊框,我們可以使用 Margins 類別的 QrStyleOptions 屬性。 此屬性控制二維碼四周的邊距,預設值為 10px。 在我們的範例中,我們將邊距設定為 20px。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-13.cs
using IronQr;
using IronSoftware.Drawing;
QrStyleOptions styleOptions = new QrStyleOptions()
{
// Change margins to 20px
Margins = 20
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing
Private styleOptions As New QrStyleOptions() With {.Margins = 20}
Private url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Private qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")

更改每一邊的邊距
IronQR 還允許使用者為每一邊指定不同的邊距,從而提供更精細的控制。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-14.cs
using IronQr;
using IronSoftware.Drawing;
QrStyleOptions styleOptions = new QrStyleOptions()
{
// Change margins
MarginBottom = 30,
MarginTop = 100,
MarginRight = 40,
MarginLeft = 20,
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing
Private styleOptions As New QrStyleOptions() With {
.MarginBottom = 30,
.MarginTop = 100,
.MarginRight = 40,
.MarginLeft = 20
}
Private url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Private qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")
重新著色
我們可以使用 QrStyleOptions 類別為 QR 碼及其背景添加顏色。 自訂顏色可以讓二維碼更加獨特、引人注目。 您可以使用 Color 和 BackgroundColor 屬性來變更顏色。 請務必導入 IronSoftware.Drawing 以取得可用顏色的清單。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;
// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");
// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
Logo = new QrLogo(logo, 50, 50, 10),
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
Imports IronQr
Imports IronSoftware.Drawing
' Load new logo image
Dim logo As AnyBitmap = AnyBitmap.FromFile("sample.png")
' Add new logo to QR code style options
Dim styleOptions As New QrStyleOptions() With {
.Logo = New QrLogo(logo, 50, 50, 10)
}
Dim url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Dim qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Dim qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png")

添加徽標
除了顏色和尺寸,您還可以將公司徽標應用到二維碼上。 這有助於用戶立即識別並將二維碼與您的品牌聯繫起來。 Logo 屬性可讓您輕鬆透過添加公司標誌來自訂 QR 碼。
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;
// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");
// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
Logo = new QrLogo(logo, 50, 50, 10),
};
string url = "https://ironsoftware.com/csharp/qr/";
// Create QR code
QrCode qr = QrWriter.Write(url);
// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);
// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
Imports IronQr
Imports IronSoftware.Drawing
' Load new logo image
Dim logo As AnyBitmap = AnyBitmap.FromFile("sample.png")
' Add new logo to QR code style options
Dim styleOptions As New QrStyleOptions() With {
.Logo = New QrLogo(logo, 50, 50, 10)
}
Dim url As String = "https://ironsoftware.com/csharp/qr/"
' Create QR code
Dim qr As QrCode = QrWriter.Write(url)
' Save QR code as a bitmap
Dim qrImage As AnyBitmap = qr.Save(styleOptions)
' Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png")

自訂徽標
QrLogo 類別可進一步自訂標誌的外觀。 以下是可供選擇的房產:
Bitmap:代表您欲用作標誌的圖片。Width:代表標誌的寬度。 預設值為0。Height:代表標誌的高度。 預設值為0。CornerRadius:代表標誌圓角的半徑。 預設值設定為 0,表示標誌會有方形的角。
using IronQRCode;
using IronSoftware.Drawing;
課程項目
{
static void Main()
{
`QrStyleOptions` styleOptions = new `QrStyleOptions`
{
`Logo` = new `QrLogo`
{
`Bitmap` = `AnyBitmap.FromBitmap`("path/to/logo.png"),
`Width` = 50,
`Height` = 50,
`CornerRadius` = 5
}
};
`QrCode` qr = `QrWriter.CreateQrCode`()
.Write("Customized Logo Example");
qr.SaveAs("example-customized-logo-qr.png", styleOptions);
}
}
using IronQRCode;
using IronSoftware.Drawing;
課程項目
{
static void Main()
{
`QrStyleOptions` styleOptions = new `QrStyleOptions`
{
`Logo` = new `QrLogo`
{
`Bitmap` = `AnyBitmap.FromBitmap`("path/to/logo.png"),
`Width` = 50,
`Height` = 50,
`CornerRadius` = 5
}
};
`QrCode` qr = `QrWriter.CreateQrCode`()
.Write("Customized Logo Example");
qr.SaveAs("example-customized-logo-qr.png", styleOptions);
}
}
Imports IronQRCode
Imports IronSoftware.Drawing
Module 課程項目
Sub Main()
Dim styleOptions As New QrStyleOptions With {
.Logo = New QrLogo With {
.Bitmap = AnyBitmap.FromBitmap("path/to/logo.png"),
.Width = 50,
.Height = 50,
.CornerRadius = 5
}
}
Dim qr As QrCode = QrWriter.CreateQrCode().Write("Customized Logo Example")
qr.SaveAs("example-customized-logo-qr.png", styleOptions)
End Sub
End Module
檢查容錯性
除了文件格式和自訂方面的廣泛靈活性外,這種靈活性還延伸到偵錯和錯誤處理方面。 IronQR 為開發人員提供各種工具來處理異常並編寫單元測試來驗證應用程式。
校驗和
二維碼有時可能會損壞,但 IronQR 內建了校驗及及資料糾錯功能,以保持其功能正常。 它採用里德-所羅門糾錯演算法,確保二維碼具有容錯能力。
詳細錯誤訊息
IronQR 提供詳細的錯誤訊息,幫助使用者快速識別問題。 這些訊息包含特定異常的列表,使偵錯和問題解決更加直接。 以下是該函式庫所使用的 IronQrException 清單。
IronQrEncodingException:作為IronQrException的子類別,此錯誤發生於寫入 QR 碼時出現問題。 例如,如果使用者嘗試從空字串建立二維碼,就會出現此提示。

-
IronQrFileException:作為IronQrException的子類別,此錯誤發生於出現與檔案相關的問題時。 IronQrPdfPasswordExcception:此錯誤是IronQrException的子類別,當使用者嘗試加蓋印章的 PDF 文件受密碼保護,且未提供密碼或提供錯誤密碼時,便會發生此錯誤。 它還涵蓋了其他與 PDF 相關的錯誤,例如 PDF 無法開啟的情況,如範例所示。

結論
IronQR 提供了一套全面的方法,用於在 .NET 應用程式中產生和自訂二維碼。 憑藉其強大的功能,開發人員可以輕鬆創建具有各種資料編碼、視覺樣式和糾錯等級的二維碼。 這個函式庫支援多樣化的輸出格式,並能無縫整合至現有文件中,使其成為任何 QR 代碼專案的通用工具。 無論您需要基本的二維碼還是高級的品牌解決方案,IronQR 都能提供靈活且功能強大的解決方案,高效滿足您的需求。
常見問題
如何在 C# 中生成 QR 碼?
您可透過 IronQR 中的 QrWriter 類別,在 C# 中產生 QR 碼。此類別讓您能將資料寫入 QR 碼,並以多種圖像格式儲存。只需使用 Write 方法編碼您的資料,並透過 SaveAs 輸出 QR 碼即可。
我可以對 QR 碼進行哪些類型的自訂?
IronQR 允許您透過更改顏色、添加標誌、調整大小及設定邊距來自訂 QR 碼。請使用 QrStyleOptions 類別來套用這些自訂設定。
我可以使用 C# 將 QR 碼嵌入 PDF 文件中嗎?
是的,您可以透過 IronQR 並使用 StampToExistingPdfPage 或 StampToExistingPdfPages 方法,將 QR 碼嵌入 PDF 檔案中。這讓您能夠指定 QR 碼應出現的位置及頁面。
在建立 QR 碼時,該如何處理錯誤?
IronQR 具備強大的錯誤處理功能,提供 IronQrEncodingException、IronQrFileException 及 IronQrPdfPasswordException 等錯誤訊息,以協助除錯與解決問題。
QR 碼可以匯出為哪些格式?
使用 IronQR,您可以將 QR 碼匯出為多種格式,包括 JPG、PNG、GIF 和 TIFF。透過 SaveAs 方法,您可以指定 QR 碼輸出的目標格式。
此函式庫是否支援跨平台開發?
是的,IronQR 透過 IronSoftware.Drawing 函式庫支援跨平台開發,使其相容於不同的 .NET 版本與平台。
是否可以在 QR 碼中加入商標以進行品牌推廣?
您可以使用 IronQR 設定 QrStyleOptions 類別中的 Logo 屬性,將標誌加入 QR 碼中,藉此製作具有自訂標誌外觀的品牌化 QR 碼。
QR 碼中的錯誤校正功能有何目的?
IronQR 支援的 QR 碼錯誤修正功能,可確保即使 QR 碼部分受損,仍能保持可讀性。此功能提供四種修正等級:最高、高、中、低,以適應不同的使用情境。
哪些資料類型可以編碼成 QR 碼?
IronQR 能將多種資料類型編碼為 QR 碼,包括文字、URL、數字、二進位資料及資料流,為您所能呈現的資料提供高度彈性。
如何在 C# 中建立包含網址的 QR 碼?
若要在 C# 中建立包含 URL 的 QR 碼,請使用 IronQR 中的 QrWriter 類別。透過 Write 方法將 URL 編碼,並使用 SaveAs 將 QR 碼儲存為圖片。

