与其他组件比较

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

发布 2023年六月21日
分享:

介绍

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

ZXing 条码扫描器

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

1.译文特点

  • 它可以跟踪 URL、联系信息、日历事件等。
  • 翻译时要考虑到 Java SE 应用程序。
  • 通过目的,可以集成 BarCode。
  • 这是一个简单的谷歌眼镜应用程序。

2.将 ZXing 与 .NET 结合使用

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

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

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

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

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

2.1 安装 ZXing BarCode

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

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

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

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

2.2 使用 ZXing 读写 BarCode

我们能够使用以下示例代码创建一个 BarCode。 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` 中的写入函数将给定字符串编码为条形码,并将条形码作为位图图像返回。 然后,借助位图中的保存功能,我们可以保存图像。 以下是代码的结果。

如何在 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 的 Library 可轻松制作动态条码。 只需几行代码,这个简单的库就能生成条形码,帮助我们对条形码图像进行编码。 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 在创建条码图像时自动对其进行预处理。 动态 BarCode 允许更改内容,因此经常使用。
  • IronBarcode 能够利用多个内核和线程,这对于批量处理服务器来说非常有利。
  • 在单页和多页文档中,IronBarcode 可自动查找一个或多个条形码。

2.使用 IronBarcode

要在解决方案中使用 IronBarcode 库,您必须下载所需的软件包。 为此,请使用下面描述的软件包管理器代码:

:PackageInstall

作为替代方法,您可以使用 NuGet 软件包管理器(将显示所有搜索结果)来查找并下载 "Barcode "软件包。 然后,您可以从中选择必要的软件包下载到程序中。

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

3.使用 IronBarcode 读写条形码

只需几行代码,我们就可以使用 IronBarcode 库快速制作条形码图像。 此外,它还能让我们将创建的 BarCode 保存为单独的图片文件。下面是一些使用 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 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.11 刚刚发布

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