使用 IRONBARCODE

如何在 C# Windows 應用程式中使用條碼掃描器

已更新 2024年1月20日
分享:

本教程將演示如何在 C# 控制台應用程式和 .NET Windows Forms 應用程式中掃描 QR 碼和條形碼,以 IronBarcode 庫為例。

使用 IronBarcode 庫,可以同時掃描和讀取多個條碼,並且還能成功掃描不完美的圖像。 首先,我們來釐清什麼是條碼掃描器。

條碼掃描器是什麼?

條碼是一種方形或矩形的圖像,由一系列不同寬度的平行黑線和白色空格組成。 條碼掃描器或條碼閱讀器是一種可以讀取印刷條碼、解碼條碼中包含的數據並將數據發送到計算機的設備。

以下步驟將介紹如何使用IronBarcode庫創建條形碼掃描器。

如何在C#中讀取條形碼

  • 在 Microsoft Visual Studio 中創建一個 .NET Windows Forms 應用程序項目
  • 安裝條碼庫
  • 讀取任何條碼或 QR 碼
  • 在一次掃描中讀取多個條碼或QR碼
  • 允許 IronBarcode 從不完美的掃描和照片中讀取

1. 在 Microsoft Visual Studio 中建立 Windows Forms 應用程式

打開 Visual Studio > 點擊 Create New Project > 選擇 Windows Forms Application Template > 按 Next > 命名專案 > 按 Next > 選擇您的目標 .NET Framework > 點擊 Create 按鈕。

創建專案後,從 Visual Studio 工具箱設計表單如下:PictureBox、Label、TextBox 和 Button 控件。

如何在 C# Windows 應用程式中使用條碼掃描儀, 圖 1:條碼掃描儀

條碼掃描器

2. 在 C# 中安裝 Barcode .NET 庫

可以使用以下三種方法之一安裝 Barcode Library:

1. 套件管理器主控台

在套件管理器控制台中輸入以下命令。 它將為您下載並安裝套件。

Install-Package BarCode

2. NuGet 軟體套件管理器解決方案

您也可以使用 NuGet 套件方案安裝 Barcode Library。 只需遵循以下步驟:

單擊 工具 > NuGet 套件管理員 > 管理解決方案的 NuGet 套件

這將為您開啟 NuGet 套件管理器。 單擊“瀏覽”並搜尋 Barcode,然後安裝類別庫。

3. 從連結下載

作為一種替代方案,IronBarCode.Dll可以下載並添加到您的專案中作為參考。

下載後,將以下引用新增到您的條碼掃描器專案中。

using IronBarCode;
using IronBarCode;
Imports IronBarCode
VB   C#

3. 讀取任何條碼或 QR 碼

在 .NET 中使用 IronBarcode 庫讀取條碼或 QR 碼非常容易,通過.NET 條碼讀取器.

條碼掃描器

在您的專案中瀏覽您想要讀取的圖像。 它會在 PictureBox 中打開它; 現在點擊「掃描代碼」。 文字將出現在文本框中。

以下是“瀏覽”按鈕打開圖像的程式碼:

// open file dialog   
OpenFileDialog open = new OpenFileDialog();  
// image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)
*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    // display image in picture box
    pictureBox1.Image = new Bitmap(open.FileName); 
    // store image file path in class data member. Initialize it as string ImageFileName;
    ImageFileName = open.FileName; 
}
// open file dialog   
OpenFileDialog open = new OpenFileDialog();  
// image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)
*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    // display image in picture box
    pictureBox1.Image = new Bitmap(open.FileName); 
    // store image file path in class data member. Initialize it as string ImageFileName;
    ImageFileName = open.FileName; 
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

「掃描碼」按鈕的程式碼:

BarcodeResult Result = BarcodeReader.Read(ImageFileName);
textBox1.Text = Result.Text;
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
textBox1.Text = Result.Text;
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName)
textBox1.Text = Result.Text
VB   C#

條碼掃描器將條碼數據顯示在文本框中,如下所示:

如何在 C# Windows 應用程式中使用條碼掃描器,圖2:要用 C# 掃描的條碼影像

用 C# 掃描條碼圖像

QR Code 掃描器

在本節中,IronBarcode 庫有效處理涉及傾斜 QR 碼的實際情況。 雖然傾斜角度的 QR 碼可以被處理和讀取,但讀取然而,該方法可能需要更多時間來解決。 IronBarcode 庫提供了一種定制化的使用方式BarcodeReaderOptions作為附加參數來處理此類圖像輸入。 代碼如下:

// Choose which filters are to be applied (in order);
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Set chosen filters in BarcodeReaderOptions:
    ImageFilters = filtersToApply,

    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
 BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
// Choose which filters are to be applied (in order);
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Set chosen filters in BarcodeReaderOptions:
    ImageFilters = filtersToApply,

    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
 BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

開啟傾斜的 QR 碼圖像後,輸出將如下所示:

如何在C# Windows應用程式中使用條碼掃描器,圖4:傾斜的二維碼圖片

傾斜的 QR 碼圖像

在一次掃描中讀取多個條碼

PDF 文件

可以從 PDF 文件中掃描條碼圖像,每個結果都可以根據需要適當顯示。 以下範例代碼允許您從 PDF 文件中讀取多個條碼。

// Multiple barcodes may be scanned up from a single document or image.  A PDF document may also used as the input 
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
foreach (var PageResult in PDFResults) { 
    string Value = PageResult.Value;
    int PageNum = PageResult.PageNumber;
    System.Drawing.Bitmap Img = PageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PageResult.BarcodeType;
    byte [] Binary = PageResult.BinaryValue;
    Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
// Multiple barcodes may be scanned up from a single document or image.  A PDF document may also used as the input 
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
foreach (var PageResult in PDFResults) { 
    string Value = PageResult.Value;
    int PageNum = PageResult.PageNumber;
    System.Drawing.Bitmap Img = PageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PageResult.BarcodeType;
    byte [] Binary = PageResult.BinaryValue;
    Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
' Multiple barcodes may be scanned up from a single document or image.  A PDF document may also used as the input 
Dim PDFResults() As imagePagedBarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results
For Each PageResult In PDFResults
	Dim Value As String = PageResult.Value
	Dim PageNum As Integer = PageResult.PageNumber
	Dim Img As System.Drawing.Bitmap = PageResult.BarcodeImage
	Dim BarcodeType As BarcodeEncoding = PageResult.BarcodeType
	Dim Binary() As Byte = PageResult.BinaryValue
	Console.WriteLine(PageResult.Value & " on page " & PageNum)
Next PageResult
VB   C#

PDF檔案中的條碼和QR碼:

如何在 C# Windows 應用程式中使用條碼掃描器, 圖 3:C# - 從 PDF 中讀取條碼結果

C# - 從 PDF 讀取條碼的結果

從不完美的圖像中讀取條碼

在現實世界的應用場景中,條碼通常在圖像、掃描件、縮略圖或照片中發現時有缺陷,且可能包含數位噪聲或傾斜。 本節演示如何從縮略圖中讀取條碼數據。

縮略圖

IronBarcode 庫使用C# 條碼生成器,甚至可以讀取損壞的條碼縮圖。

如何在 C# Windows 應用程式中使用條碼掃描器,圖 5: 自動條碼縮圖大小修正。 使用IronBarcode在C#中讀取文件

自動條碼縮圖尺寸校正。 使用 IronBarcode 在 C# 中可讀取的文件

它自動檢測尺寸過小而無法合理地代表實際條碼的條碼圖像,然後增加尺寸並清除與縮略圖相關的所有數字噪音,使其再次可讀。

// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
' Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
Dim SmallResult As BarcodeResult = BarcodeReader.Read("ThumbnailOfBarcode.gif")
VB   C#

摘要

IronBarcode 是一個多功能的 .NET 軟體庫,C# QR碼生成器用於掃描和讀取各種條形碼圖像格式,無論這些條形碼是完美的截圖還是實際照片、掃描或其他。不完美的真實世界圖像. 此外,IronBarcode 提供廣泛的自訂選項以提升條碼讀取速度,例如裁切區域多線程,和機器學習模型的準確性. 參觀官方文件頁面了解更多有關 IronBarcode 的資訊。

目前,如果您購買完整的Iron Suite您可以以兩套價格獲得五個庫。

< 上一頁
條碼生成器 .NET 教程
下一個 >
如何在 ASP.NET 中使用 C# 生成條碼

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

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