使用IRONBARCODE

如何在 C# Windows 应用程序中使用 BarCode 扫描仪

更新 2024年一月20日
分享:

本教程将以 IronBarcode 库为例,演示如何在 C# 控制台应用程序和 .NET Windows 窗体应用程序中扫描二维码和条形码。

使用 IronBarcode 库,可以同时扫描和读取多个条形码,还能成功扫描不完美的图像。 首先让我们明确一下什么是 BarCode 扫描仪。

什么是 BarCode 扫描仪?

BarCode 是一个正方形或长方形图像,由一系列宽度不等的平行黑线和白线组成。 条形码扫描器或条形码阅读器是一种可以读取印刷条形码、解码条形码中包含的数据并将数据发送到计算机的设备。

以下步骤将介绍如何借助 IronBarcode 库创建条形码扫描器。

如何在 C# 中读取 BarCode;

  • 在 Microsoft Visual Studio 中创建 .NET Windows Forms 应用程序项目
  • 安装 BarCode 库
  • 读取任何 BarCode 或 QR 码
  • 一次扫描即可读取多个 BarCode 或 QR 码
  • 允许 IronBarcode 从不完美的扫描件和照片中读取数据

1.在 Microsoft Visual Studio 中创建 Windows 窗体应用程序

打开 Visual Studio > 点击 Create New Project > 选择 Windows Forms Application Template > 按 Next > 给项目命名 > 按 Next > 选择目标 .NET Framework > 点击 Create 按钮。

创建项目后,在 Visual Studio 工具箱中设计如下表单:PictureBox、Label、TextBox 和 Button 控件。

如何在 C# Windows 应用程序中使用条码扫描器,图 1:条码扫描器

BarCode 扫描仪

2.在 C# 中安装 BarCode .NET 库;

可以使用以下三种方法之一安装 BarCode Library:

1.软件包管理器控制台

在软件包管理器控制台中编写以下命令。 它将为您下载和安装软件包。

Install-Package BarCode

2.NuGet 软件包管理器解决方案

您也可以使用 NuGet 软件包解决方案安装 BarCode Library。 只需按照以下步骤操作:

点击工具 > NuGet软件包管理器 > 为解决方案管理NuGet软件包

这将为您打开 NuGet 包管理器。 点击浏览并搜索 BarCode,然后安装类库。

3.从链接下载

作为一种替代方案,IronBarCode.Dll可下载并添加到项目中作为参考。

下载后,将以下参考资料添加到您的 BarCode 阅读器项目中。

using IronBarCode;
using IronBarCode;
Imports IronBarCode
VB   C#

3.读取任何 BarCode 或 QR 码

使用 IronBarcode library 与 IronBarcode for .NET 一起使用,在 .NET 中读取条形码或 QR 码变得异常简单。.NET 条码阅读器.

BarCode 扫描仪

在您的项目中浏览图片,您希望阅读。 它将在 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# 扫描的 BarCode 图像***

QR 码扫描器

在本节中,IronBarcode 库将有效处理涉及倾斜二维码的实际情况。 虽然倾斜角度的 QR 代码可以由以下设备处理和读取阅读尽管如此,解决这个问题仍需要更多时间。 IronBarcode 库提供了一种定制的方式来使用条码阅读器选项作为额外参数,以处理此类图像输入。 代码如下

// 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#

打开倾斜的二维码图像后,输出结果如下:

如何在 C# Windows 应用程序中使用条码扫描器, 图 4: 倾斜的 QrCode 图像

倾斜的 QrCode 图像

一次扫描读取多个条形码

PDF 文档

可以从 PDF 文件中扫描条形码图像,并根据需要适当显示每个结果。 以下示例代码可让您从 PDF 文件中读取多个 BarCode。

// 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 文件中出现的 BarCode 和 QR 码:

如何在 C# Windows 应用程序中使用条码扫描器, 图 3: C# - 从 PDF 结果中读取条码

C# - 从 PDF 结果中读取 BarCode

从不规则图像中读取 BarCode

在实际使用案例中,经常会发现图像、扫描件、缩略图或照片中的 BarCode 有瑕疵,可能包含数字噪音或有偏差。 本节演示如何从缩略图中读取 BarCode 数据。

缩略图

IronBarcode 库使用了C# 条码生成器此外,BarCode.NET 还能读取已损坏的条形码缩略图。

如何在 C# Windows 应用程序中使用条码扫描器,图 5:自动条码缩略图尺寸校正。 使用 C# 中的 IronBarcode 阅读文件

**自动校正 BarCode 缩略图尺寸。 使用 C# 中的 IronBarcode 可读取文件***

它能自动检测出因太小而无法合理表现实际条形码的条形码图像,然后进行缩放并清除所有与缩放相关的数字噪音,从而使其重新具有可读性。

// 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 for .NET 是一个多功能的 .NET 软件库,也是一个可扩展的软件工具。C#二维码生成器它可以扫描和读取各种条形码图像格式,无论这些条形码是完美的屏幕截图,还是照片、扫描件或其他格式的图像。不完美的真实世界图像. 此外,IronBarcode 还提供多种自定义选项,以提高条码读取速度,例如作物区多线程ML 模型的准确性. 参观正式文件页面有关 IronBarcode 的更多信息。

目前,如果您购买全套铁艺套件您只需花两个图书馆的钱,就可以得到五个图书馆。

< 前一页
条形码生成器 .NET 教程
下一步 >
如何在ASP.NET中使用C#生成条形码

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 1,320,639 查看许可证 >