用 C# 寫二維碼

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

介紹

借助 IronQR,開發人員可以為流行的圖像格式建立二維碼,並使用背景顏色、邊距、徽標對其進行自訂,甚至可以將其添加到 PDF 中。 對於高級用戶,它還提供錯誤修正和版本控制功能。

本文將透過範例探討 IronQR 的關鍵特性,幫助您了解如何在 C# 中使用它來編寫二維碼,並在您的專案中有效地應用它。

目錄

輸入資料 文字、網址、數字 -二進制和流 匯出二維碼 -另存為影像

!{--01001100010010010100001001010010010000010101001001011001010111110101001101010100010001010101010 10100010111110101010001010010010010010100000101001100010111110100001001001100010011111010000100100110001001111010101

輸入資料

文字、網址、數字

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

課程項目 { 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 ,然後將其轉換為二維碼。 當使用者需要對資料塊進行更精細的控制時,這非常有用,因為流可以更節省記憶體。

: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

匯出二維碼

IronQR 具有靈活性和適應性,可滿足各種需要不同文件格式的使用情境。 您可以使用SaveAs方法將二維碼儲存為 JPG、PNG、GIF 和 TIFF 等多種格式。

另存為影像

AnyBitmapSaveAs方法會根據提供的檔案路徑自動偵測檔案格式。 在這個例子中,我指定了一個以.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

系統.繪圖.圖像

將映像轉換為 Microsoft 的System.Drawing.Images對象,即可使用Bitmap類別將二維碼儲存到檔案路徑。 在這個範例中, Save方法將二維碼儲存為 PNG 文件,並儲存到路徑qrBitmap.png

[{i:( System.Drawing.Common僅在 Windows 平台上支援。