Write QR Codes in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Introducción

使用IronQR,開發者可以為熱門圖像格式建立QR碼,並可自訂背景顏色、邊距、標誌,甚至將它們新增到PDF中。 對於高級使用者,它還提供對錯誤校正和版本的控制。

本文將通過範例探討IronQR的主要功能,幫助您了解如何使用它在C#中編寫QR碼,並在您的專案中有效應用。

目錄

今天就使用IronQR開始專案,免費試用。

第一步:
green arrow pointer

輸入資料

文字、URLs、數字

IronQR可以將廣泛的資料型別,包括文字、URLs和數字,轉換為QR碼。 無論您是在為營銷和通信建立QR碼連結或文字、為庫存管理建立數字程式碼,還是將二進制資料或流編碼為可讀的QR碼,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")
$vbLabelText   $csharpLabel

二進制&流

同樣,我們可以使用早前提到的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")
$vbLabelText   $csharpLabel

class Program { static void Main() { // 建立一個QR碼編寫器實例 QrWriter writer = QrWriter.CreateQrCode();

    // 範例二進制資料
    byte[] data = `{ 0x01, 0x02, 0x03, 0x04 }`;

    // 將二進制資料寫入QR碼
    writer.Write(data)
          .SaveAs("binary-qr.png");

    // 使用記憶體流的範例
    using (MemoryStream stream = new MemoryStream(data))
    {
        writer.Write(stream)
              .SaveAs("stream-qr.png");
    }
}

}

Write方法有重載可接受byte陣列和流作為輸入。 對於流,我們可以從byte陣列建立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")
$vbLabelText   $csharpLabel

導出QR碼

IronQR靈活且適應於需要不同文件格式的各種使用情況。 您可以使用SaveAs方法將QR碼保存為多種格式,例如JPG, PNG, GIF, 和TIFF。

儲存為圖像

SaveAs方法會根據提供的文件路徑自動檢測文件格式。 在此範例中,我指定了一個結尾為.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")
$vbLabelText   $csharpLabel

System.Drawing.Images

將圖像轉換為來自Microsoft的Bitmap類將QR碼保存到文件路徑。 在此範例中,qrBitmap.png

System.Drawing.Common僅支持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")
$vbLabelText   $csharpLabel

IronSoftware.Drawing

由於System.Drawing.Common缺乏跨平台相容性,開發人員在維護跨平台應用程式時可能會遇到問題。 IronQR可以使用IronSoftware.Drawing

IronQR使用AnyBitmap類,一個通用的Bitmap類,隱式轉換為以下項目:

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SixLabors.ImageSharp
  • Microsoft.Maui.Graphics.Platform.PlatformImage

使用這個強大的開源程式庫,IronQR實現了跨平台支援,並與.NET Framework 4.6.2+相容。 欲了解更多關於該程式庫的資訊,請參閱IronSoftware.Drawing網站。

在PDF上加蓋

IronQR允許開發者將QR碼加蓋在現有的PDF文件上,以方便他人快速存取連結或其他資源。 支持在單頁和多頁上加蓋QR碼。

加蓋到單一頁面

在建立QR碼後,從StampToExistingPdfPage方法。 此方法需要提供文件路徑、坐標(x和y)、頁碼,以及PDF受密碼保護時的可選密碼。 一旦提供了參數,該方法會將QR碼加蓋並保存PDF。

請注意此方法以PDF頁面為基礎,頁碼從1開始而非0。

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

加蓋到多個頁面

與上述範例相似,主要區別在於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)
$vbLabelText   $csharpLabel

從兩個範例輸出

alt text


QR碼選項

IronQR提供了廣泛的自訂選項,用於微調QR碼的行為和功能。 QrOptions類提供多個參數,如版本控制、編碼型別、字元編碼和錯誤校正標準。 讓我們更詳細地探討這些選項。

編碼

IronQR支援多種QR碼型別,用於建立和讀取。 以下是支援的型別:

  • QRCode:這是標準QR碼,今天常用。 它可以儲存最多7,089個數字字元或4,296個字母數字字元。
  • MicroQRCode:這是標準QR碼的較小版本,可以儲存最多35個數字字元或21個字母數字字元。
  • RMQRCode:矩形Micro QR Code是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")
$vbLabelText   $csharpLabel

錯誤校正

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

更高的錯誤校正在讀取QR碼時提供更高的容錯性,使其在較低解析度下比低錯誤校正的QR碼更容易掃描。 您可以根據您的使用情況進行測試。

alt text

QR碼版本

您可以調整QR碼版本以儲存更多資料。 較高的版本適合用於庫存或物流,而較低的版本適合用於較少資料,例如短URL。 只需在Version屬性,即可按需生成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")
$vbLabelText   $csharpLabel

alt text

從輸出中可以看出,QR碼的版本40比版本5更為複雜和密集。

較低版本的掃描精度要求更高,如果沒有高解析度的掃描器,可能很難掃描。 然而,即使使用較低解析度的相機,較高版本的也更容易掃描。 如需更詳細的QR版本容量指南,請參閱QR版本列表

字元編碼

此選項決定了QR碼的編碼方式。 在我們的範例中,我們將其更改為'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")
$vbLabelText   $csharpLabel

QR碼樣式

除了其易於使用的方法和靈活處理輸入資料外,IronQR還提供了許多自訂和樣式化QR碼的選項,使其獨一無二。 QrStyleOptions類提供各種參數來自訂QR碼的各個方面。 讓我們來探討可用的選項。

調整大小

要調整QR碼的大小,您可以設定Dimensions屬性。 預設情況下,QR碼保存為300px。 在此範例中,我們將QR碼保存為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")
$vbLabelText   $csharpLabel

alt text

邊距&邊框

若要調整邊距和邊框,我們可以使用QrStyleOptions屬性。 此屬性控制QR碼從四周的邊距,預設值為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")
$vbLabelText   $csharpLabel

alt text

更改每一側的邊距

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

重新著色

我們可以使用QrStyleOptions類類將色彩新增到QR碼和其背景。 自訂色彩使QR碼更加獨特且引人注目。 您可以使用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")
$vbLabelText   $csharpLabel

alt text

新增標誌

除了顏色和尺寸外,您還可以將公司的標誌應用於QR碼。 這有助於使用者立即識別並將QR碼與您的品牌聯繫起來。 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")
$vbLabelText   $csharpLabel

alt text

自訂標誌

QrLogo類允許進一步自訂標誌的外觀。 以下是可用的屬性:

  • Bitmap:代表您想要用作標誌的圖像。
  • Width:代表標誌的寬度。 預設值為0。
  • Height:代表標誌的高度。 預設值為0。
  • CornerRadius:代表圓角的半徑。 預設為0,意味著標誌將有方角。
using IronQRCode;
using IronSoftware.Drawing;

class Program
{
    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;

class Program
{
    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

Class Program
    Shared 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 Class
$vbLabelText   $csharpLabel

檢查容錯能力

除了在文件格式和自訂方面的廣泛靈活性,靈活性還延伸到除錯和錯誤處理方面。 IronQR提供了各種工具,讓開發者處理異常並撰寫單元測試來驗證應用程式。

CheckSums

QR碼有時可能會損壞,但IronQR包括內建的校驗和資料更正功能以保持其功能。 它使用里德-所羅門錯誤校正算法,確保QR碼保持容錯能力。

詳細錯誤訊息

IronQR提供詳細的錯誤訊息,幫助使用者快速識別問題。 這些訊息包含特定異常的列表,使除錯和解決問題更加直接。 以下是程式庫中使用的IronQrException列表。

  • IronQrException的子類,當QR碼寫入出現問題時會引發此錯誤。 例如,如果使用者嘗試從空字串建立QR碼,則會出現此錯誤。

alt text

  • IronQrException的子類,當出現與文件相關的問題時會引發此錯誤。

  • IronQrException的子類,當使用者嘗試加蓋的PDF受密碼保護且未提供密碼或提供的密碼錯誤時,會引發此錯誤。 它還涵蓋了其他與PDF相關的錯誤,例如無法打開PDF,如範例所示。

alt text

結論

IronQR為在.NET應用程式中生成和自訂QR碼提供了全面的方法集。 憑藉其強大的功能,開發者可以輕鬆建立具有各種資料編碼、視覺樣式和錯誤校正標準的QR碼。 該程式庫對多種輸出格式的支援和無縫整合到現有文件中,使其成為任何QR碼專案的多功能工具。 無論您需要基本的QR碼還是高級的品牌解決方案,IronQR都提供了您所需的靈活性和功能來高效地滿足您的需求。

欲了解更多資訊,請查看IronQR文件,開始探索免費試用,並檢視授權選項以查看哪種計劃最適合您的需求。

常見問題

如何在 C# 中生成 QR 碼?

您可以使用 IronQR 中的 QrWriter 類在 C# 中生成 QR 碼。此類允許您將資料寫入 QR 碼並以各種圖像格式保存。只需使用 Write 方法編碼您的資料,並使用 SaveAs 輸出 QR 碼。

我可以對 QR 碼進行哪些自訂?

IronQR 允許您通過更改顏色、新增標識、調整大小和邊距來自訂 QR 碼。使用 QrStyleOptions 類來應用這些自訂。

我可以使用 C# 將 QR 碼嵌入 PDF 中嗎?

是的,您可以使用 IronQR 中的 StampToExistingPdfPageStampToExistingPdfPages 方法,將 QR 碼嵌入 PDF 中。這允許您指定 QR 碼應出現的位置和頁面。

如何在建立 QR 碼時處理錯誤?

IronQR 具有強大的錯誤處理功能,提供 such as IronQrEncodingExceptionIronQrFileExceptionIronQrPdfPasswordException 等錯誤資訊,以協助除錯和解決問題。

我可以將 QR 碼導出到哪些格式?

using IronQR,您可以將 QR 碼導出到各種格式,包括 JPG、PNG、GIF 和 TIFF。SaveAs 方法允許您指定所需的 QR 碼輸出格式。

此程式庫是否支持跨平台開發?

是的,IronQR 通過 IronSoftware.Drawing 程式庫支持跨平台開發,使其與不同的 .NET 版本和平台相容。

是否可以為 QR 碼新增標識進行品牌化?

您可以在 QR 碼中新增標識,使用 IronQR 在 QrStyleOptions 類中設置 Logo 屬性,從而使 QR 碼可以具有自訂的標識外觀。

QR 碼中的錯誤更正有什麼用途?

IronQR 支持的 QR 碼中的錯誤更正確保 QR 碼即使部分損壞仍保持可讀性。此功能提供四個級別的更正:最高、高、中和低,以滿足不同的使用案例。

可以將哪些資料型別編碼到 QR 碼中?

IronQR 可以將多種型別的資料編碼為 QR 碼,包括文字、URL、數字、二進制資料和流,提供了資料表示的靈活性。

如何在 C# 中建立含有 URL 的 QR 碼?

要在 C# 中建立含有 URL 的 QR 碼,請使用 IronQR 中的 QrWriter 類。使用 Write 方法編碼 URL,並使用 SaveAs 將 QR 碼儲存為圖像。

Curtis Chau
技術作家

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

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

準備好開始了嗎?
Nuget 下載 70,814 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

想要快速證明嗎? PM > Install-Package IronQR
執行一個範例 觀看您的URL變成QR碼。