與其他組件比較

如何在ZXing中為C#開發人員掃描條碼

發佈 2023年6月21日
分享:

介紹

條形碼提供了一種清晰且機器可讀的方式來呈現數據。 最初,條碼由不同寬度和間距的平行線組成,用來表示數據。 這些傳統的線性或一維(1D)條碼可以由稱為條碼閱讀器的專用光學設備掃描。 然而,條碼的演變導致了二維的發明(2D)條碼,也稱為矩陣碼。 與傳統條碼不同,2D條碼使用矩形、點和六邊形等圖案,而非條狀圖案。 要读取这些二维条码,可以使用特定的光学扫描仪设置,或者选择使用连接到运行解码软件的计算机的数码相机作为替代方法。 此外,像智慧型手機這樣的行動裝置可以利用其內建的相機和專用應用程式來作為2D條碼掃描器。

ZXing 條碼掃描器

Zebra Crossing,通常稱為 ZXing,是一個開源的多格式 1D/2D 條碼圖像處理工具包,最初用 Java 開發,並具有其他語言的移植版本。 核心圖像解碼庫、Java特定的客户端代碼以及Android客户端條碼扫描器只是構成ZXing的幾個模塊。 有許多獨立的開源專案是基於它構建的。

1. 功能

  • 它可以跟踪網址、聯絡資訊、日曆事件等。
  • 它是以 Java SE 應用程式為考量而創建的。
  • 透過目的,條碼掃描器的整合是可能的。
  • 這是一個簡單的 Google Glass 應用程式。

2. 在 .NET 中使用 ZXing

打開 Visual Studio,從檔案選單中選擇「新專案」,然後選擇「主控台應用程式」。 在本文中,我們選擇了 C# 控制台應用程式。

如何在 ZXing 中掃描條碼(適用於 C# 開發人員) 圖 1

在相应的文本框中輸入專案名稱和文件路徑。 接下來,點擊建立按鈕以選擇所需的 .NET Framework。

如果您選擇了控制台應用程式,專案將會建立其結構並打開 program.cs 檔案,讓您可以輸入程式碼並建立或執行它。

如何在 ZXing 中掃描條碼:C# 開發人員圖 2

2.1 安裝 ZXing 條碼

在 NuGet 封裝管理器主控台輸入下一個命令。

Install-Package ZXing.Net.Bindings.Windows.Compatibility

或者,我們可以使用 NuGet 套件管理工具獲取項目。 如下圖所示。 嘗試安裝您選擇的第一個結果。

如何在ZXing中為C#開發人員掃描條碼 圖3

2.2 使用 ZXing 讀取和寫入條碼

我們可以使用以下範例代碼來創建條碼。 ZXing允許我們創建超過10種條碼格式。

using ZXing.Windows.Compatibility;

var options = new QrCodeEncodingOptions
{
    Width = 250,
    Height = 250,
};

var writer = new BarcodeWriter();
writer.Format= BarcodeFormat.QR_CODE;
writer.Options = options;
System.Drawing.Bitmap _bitmap=writer.Write("Hello world");
_bitmap.Save("Demo1.png");
using ZXing.Windows.Compatibility;

var options = new QrCodeEncodingOptions
{
    Width = 250,
    Height = 250,
};

var writer = new BarcodeWriter();
writer.Format= BarcodeFormat.QR_CODE;
writer.Options = options;
System.Drawing.Bitmap _bitmap=writer.Write("Hello world");
_bitmap.Save("Demo1.png");
Imports ZXing.Windows.Compatibility

Private options = New QrCodeEncodingOptions With {
	.Width = 250,
	.Height = 250
}

Private writer = New BarcodeWriter()
writer.Format= BarcodeFormat.QR_CODE
writer.Options = options
Dim _bitmap As System.Drawing.Bitmap=writer.Write("Hello world")
_bitmap.Save("Demo1.png")
VB   C#

在上面,我們正在為 QrCodeEncodingOptions 設置高度和寬度。 然後,我們為 BarcodeWriter 創建一個對象。 對於 BarcodeWriter,我們將條碼格式設置為 QR_Code。 然後,我們分配前面建立的 qrcode 選項。 BarcodeWriter中的write函式將給定的字串編碼為條碼,並以位圖圖像的形式返回該條碼。 然後,在位圖中的保存功能的幫助下,我們可以保存影像。 以下是程式碼的結果。

如何在 ZXing 中掃描條碼-C# 開發者圖 4


using ZXing.Windows.Compatibility;
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader = new BarcodeReader();
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
    Console.WriteLine(result.Text);
    Console.ReadKey();
}

using ZXing.Windows.Compatibility;
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader = new BarcodeReader();
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
Imports ZXing.Windows.Compatibility
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
Private reader = New BarcodeReader()
Private result = reader.Decode(barcodeBitmap)
If result IsNot Nothing Then
	Console.WriteLine(result.Text)
	Console.ReadKey()
End If
VB   C#

在上述程式碼中,我們首先將圖像載入到位圖中。然後,我們創建一個 BarcodeReader 物件。 Decode 函數允許我們將位圖作為參數傳遞,可以將結果返回為多種型別。接下來,我們使用 Text 屬性來獲取條碼中編碼的文本。

如何在 ZXing 中為 C# 開發人員掃描條碼 圖 5

IronBarcode

借助這個條碼庫,讀取和創建條碼變得簡單明瞭。 使用 IronBarcode 的程式庫製作動態條碼很容易。 只需幾行程式碼,這個簡單的程式庫就可以生成條碼,從而幫助我們編碼條碼圖像。 IronBarcode 可以讓我們使用 C# 和 VB.NET 等語言生成條形碼。

1. 功能

  • IronBarcode 能讀取和寫入大多數條碼圖片格式和 QR 標準,包括 UPC A/E、Databar、EAN 8/13、MSI、Code 39/93/128、CodaB、RSS 14/Expanded 和 ITF。
  • 在掃描掃描件和實時視頻幀時,IronBarcode 能夠校正旋轉、噪音、變形和傾斜。 為了提高讀取的準確性和速度,IronBarcode 在生成條碼圖像時會自動進行預處理。 動態條碼經常被使用,因為它們允許更改內容。
  • IronBarcode 利用多核心和執行緒的能力對於批次處理伺服器而言是有利的。
  • 在單頁和多頁文件中,IronBarcode 可以自動找到一個或多個條碼。

2. 使用 IronBarcode

要在解決方案中使用IronBarcode庫,您必須下載所需的套件。 要做到這一點,請利用下面描述的套件管理器代碼:

:PackageInstall

或者,您可以使用 NuGet 套件管理器,它會顯示所有搜索結果,來尋找和下載 "Barcode" 套件。 然後,您可以從中選擇要下載到程序中的基本套件。

如何在ZXing中掃描條碼(適用於C#開發人員) 圖6

3. 使用 IronBarcode 讀取和寫入條碼

只需短短幾行代碼,我們就可以使用IronBarcode庫快速製作條碼圖像。 此外,它使我們能夠將生成的條形碼另存為一個單獨的圖片文件。以下是一段使用 Console 程式建立條形碼標籤的 Visual Basic 範例代碼。

using IronBarCode;
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png");
using IronBarCode;
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png");
Imports IronBarCode
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png")
VB   C#

使用中等層級錯誤校正生產一個500乘500像素的圖形,然後使用 SaveAsPng 方法將其儲存到檔案位置。

以下的程式碼範例會讀取我們在前一個範例中創建的 QR 碼中編碼的文字。

var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader=IronBarCode.BarcodeReader.Read(barcodeBitmap);
Console.WriteLine(reader.Values()[0]);
Console.ReadKey();
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader=IronBarCode.BarcodeReader.Read(barcodeBitmap);
Console.WriteLine(reader.Values()[0]);
Console.ReadKey();
Dim barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
Dim reader=IronBarCode.BarcodeReader.Read(barcodeBitmap)
Console.WriteLine(reader.Values()(0))
Console.ReadKey()
VB   C#

我們首先將圖像載入位圖,然後使用 BarcodeReader 類上的 Read 方法讀取圖像。 我們使用從 Read 方法返回的 BarcodeResults 對象上的 Values 屬性來獲取從 QR 碼讀取的內容。

若要了解更多關於 ZXing 及其與 IronBarcode 的比較,請閱讀此內容。下一篇博客文章.

我们的讀取條碼教程還提供了更多有關如何使用IronBarcode讀取條碼和QR碼的信息。 更多有關 IronBarcode 的程式教學。

結論

ZXing 條碼掃描器可以創建高質量的條碼,但它過時且僅支持少數條碼格式。 它也有有限的文件和產品支持。

另一方面,IronBarcode 非常高效且靈活,能夠在許多操作系統上運行。 IronBarcode 可以更改條碼中的顏色、大小、間距和字母樣式。 它還支持 Crystal Reports。

開發人員可以使用 IronBarcode免費。 用戶可以購買一個許可證以獲取更多功能並享受一整年的支援和產品更新。

下一個 >
ZXing.org QR Code Library 和 IronBarcode:全面比較

準備開始了嗎? 版本: 2024.11 剛剛發布

免費 NuGet 下載 總下載次數: 1,290,353 查看許可證 >