与其他组件比较

如何在ZXing中为C#开发人员扫描条形码

发布 2023年六月21日
分享:

简介

条形码提供了一种清晰、机器可读的数据呈现方式。最初,条形码由不同宽度和间距的平行线组成,用作数据的表示。这些传统的线性或一维 (1D) 条形码可以通过称为条形码阅读器的专用光学设备进行扫描。然而,条形码的发展导致了二维条形码的发明。 (2D) 条形码,又称矩阵码。与传统条形码不同,二维条形码使用矩形、点和六边形等图案来代替条形码。要读取这些二维条形码,可以使用特定的光学扫描仪装置,或者使用与运行解码软件的计算机相连的数码相机。此外,智能手机等移动设备也可以利用其集成的摄像头和专用应用程序来充当二维条形码扫描仪。

ZXing 条码扫描器

Zebra Crossing(通常称为 ZXing)是一个开源的多格式一维/二维条形码图像处理工具包,使用 Java 开发,并可移植到其他语言。核心图像解码库、Java 专用客户端代码和 Android 客户端条码扫描器只是组成 ZXing 的几个模块。在它的基础上还构建了许多独立的开源项目。

1.特点

  • 它可以跟踪 URL、联系人信息、日历事件等。
  • 它是专为 Java SE 应用程序设计的。
  • 可通过条形码扫描仪进行整合。
  • 这是一款简单的 Google Glass 应用程序。

2.用 .NET 使用 ZXing

打开 Visual Studio,从文件菜单中选择 "新建项目",然后选择 "控制台应用程序"。在本文中,我们选择 C# 控制台应用程序。

如何在 ZXing 中扫描条形码 图 1

在相应的文本框中输入项目名称和文件路径。接下来,单击创建按钮,选择所需的 .NET Framework。

如果您选择的是控制台应用程序,项目现在将创建其结构并打开 program.cs 文件,允许您输入程序代码并构建或执行它。

如何在 ZXing 中扫描条形码 图 2

2.1 安装 ZXing 条码

在 NuGet 软件包管理器控制台中输入下一条命令。

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

或者,我们也可以使用 NuGet 软件包管理器工具获取项目。如下图所示。尝试安装你选择的第一个结果。

如何在 ZXing 中扫描条形码 For C# Developers 图 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` 中的写入函数会将给定的字符串编码为条形码,并以位图图像的形式返回条形码。然后,借助位图中的 save 函数,我们可以保存图像。以下是代码的结果。

如何在 ZXing 中扫描条形码 For C# Developers 图 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 对象。解码 "函数允许我们将位图作为参数传递,它可以返回多种类型的结果。接下来,我们使用 Text 属性获取条形码中的编码文本。

如何在 ZXing 中扫描条形码 For C# Developers 图 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 软件包管理器(它将显示所有搜索结果)来查找并下载 "条形码 "软件包。然后,您可以从中选择必要的软件包下载到程序中。

如何在 ZXing 中扫描条形码 For C# Developers 图 6

3.使用 IronBarcode 读写条形码

只需几行代码,我们就能使用 IronBarcode 库快速制作条形码图像。此外,它还能让我们将创建的条形码保存为单独的图片文件。下面是一些使用控制台程序创建条形码标签的 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 x 500 像素的图形,然后使用 "SaveAsPng "方法保存到文件位置。

下一个代码示例将读取上一个示例中创建的二维码中的编码文本。

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 属性来获取从二维码中读取的内容。

要进一步了解 ZXing 及其与 IronBarcode 的比较,请阅读以下内容 下一个博文.

我们的 读取条形码 教程还提供了有关如何使用 IronBarcode 读取条形码和 QR 码的更多信息。有关 IronBarcode 的更多代码教程。

结论

ZXing 条码扫描器可以创建高质量的条码,但它已经过时,支持的条码格式也很少。此外,它的文档和产品支持也很有限。

另一方面,IronBarcode 非常高效灵活,可以在许多操作系统上运行。IronBarcode 可以改变条形码的颜色、大小、间距和字母。它还支持 Crystal Reports。

开发人员可以 使用 IronBarcode 免费。用户可以购买 许可证 以获得更多功能,并获得全年的支持和产品更新。

下一步 >
ZXing.org二维码库和IronBarcode:全面比较

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

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