与其他组件比较

ZXing.org二维码库和IronBarcode:全面比较

发布 2023年四月19日
分享:

如果您的技术手机/管理手机中已经有了条形码的电子图像,并希望将其破译为英文文本数据,那么条形码扫描仪可能不是最佳工具。此外,条形码扫描仪只能读取一维条形码,而一维条形码的存储容量、域状态和支持格式都受到限制,而且只能与 Windows RT 类库一起使用。如今,二维条形码 (也称二维码) 更常见,可以存储更多信息,如更新日期。

条形码扫描应用程序可在 Windows、MacOS 或 Linux 上运行,无需依赖任何第三方工具或 API,因为它受 .NET 支持。

ZXing.org QR 码库和 IronBarcode:综合比较:图 2 - 网络应用

创建和扫描条形码已成为许多企业避免垃圾邮件的必要手段。创建条形码的两个流行工具是开源的 ZXing 项目解码和扫描条形码。 IronBarcode.在本文中,我们将探讨每种工具的功能和优势,并对它们进行比较。

ZXing 解码器

ZXing 是一个流行的开源库,用于生成和解码一维和二维条形码。

它还支持多种编程语言,包括 Java、C++ 和 .NET。

ZXing Decoder Online 是一款基于网络的工具,用户可以使用它对条形码和 QR 码图像进行扫描和解码。此外,用户还可以为任何信息创建 QR 码,这些信息通常以 URL 或文本的形式存在。

要使用 ZXing 在线解码器,请按照以下步骤操作:

1.访问 ZXing Decoder Online 网站。

![ZXing.org QR 码库和 IronBarcode:综合比较:图 2 - 谷歌开发的 ZXing Web](/static-assets/barcode/blog/zxing-org-comparison/zxing-org-comparison-2.webp)

2.点击 "选择文件 "按钮,选择 QR 码图像文件。

3.选择图像后,点击 "提交 "按钮。

![ZXing.org QR 码库和 IronBarcode:综合比较:图 3 - ZXing 解码](/static-assets/barcode/blog/zxing-org-comparison/zxing-org-comparison-3.webp)

4.如果找到可识别的二维码,该工具就会对二维码进行解码,并显示解码后的信息。

该库易于使用,可集成到网络应用程序、移动应用程序和桌面应用程序中。

ZXing 已被广泛采用,并拥有一个庞大的开发人员社区,为其开发做出贡献并提供支持。

该库收集设备信息,如设备型号和操作系统版本,这可能被视为潜在的安全风险。

此外,由于该库并非由独立机构维护,一些人对其所有权和控制权表示担忧。

总之,ZXing 是一个功能强大、用途广泛的条形码生成和解码库,得到了广泛采用和社区支持。

例如,要使用 ZXing 生成 QR 代码,开发人员只需编写几行代码即可:


    using ZXing;
    using ZXing.QrCode;

    // Generate a QR code
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    Bitmap qrCode = writer.Write("Hello, ZXing!");

    using ZXing;
    using ZXing.QrCode;

    // Generate a QR code
    BarcodeWriter writer = new BarcodeWriter();
    writer.Format = BarcodeFormat.QR_CODE;
    Bitmap qrCode = writer.Write("Hello, ZXing!");
Imports ZXing
	Imports ZXing.QrCode

	' Generate a QR code
	Private writer As New BarcodeWriter()
	writer.Format = BarcodeFormat.QR_CODE
	Dim qrCode As Bitmap = writer.Write("Hello, ZXing!")
VB   C#

要使用 ZXing 项目解码 QR 代码,开发人员可以使用以下代码:


    using ZXing;
    using ZXing.QrCode;

    // Decode a QR code
    BarcodeReader reader = new BarcodeReader();
    Result result = reader.Decode(qrCode);
    string text = result.Text;

    using ZXing;
    using ZXing.QrCode;

    // Decode a QR code
    BarcodeReader reader = new BarcodeReader();
    Result result = reader.Decode(qrCode);
    string text = result.Text;
Imports ZXing
	Imports ZXing.QrCode

	' Decode a QR code
	Private reader As New BarcodeReader()
	Private result As Result = reader.Decode(qrCode)
	Private text As String = result.Text
VB   C#

ZXing.org QR 码库和 IronBarcode:综合比较:图 4 - QR 码生成器

ZXing.org QR 码库和 IronBarcode:综合比较:图 5 - 显示的 QR 码文件

介绍 IronBarcode

IronBarcode 是 Iron Software 为 .NET 开发人员创建的一款功能强大的条码生成和扫描库。

IronBarcode 提供了一个易于使用的 API,允许开发人员生成和扫描各种条形码类型,包括 QR 码、数据矩阵码和 UPC-A 条形码。

IronBarcode 库是由 Iron Software 创建的,作为扩展 ZXing.NET 图书馆

ZXing.org QR 码库和 IronBarcode:综合比较:图 6 - 支持的条码格式

他们还增加了新的特性和功能,如生成二维条形码、PDF417 条形码以及直接从图像文件读取条形码的功能。

下面是一个如何使用 IronBarcode 生成 QR 码的示例:


    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Generate a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.SaveAsImage("qrcode.png")
VB   C#

ZXing.org QR 码库和 IronBarcode:综合比较:图 7 - QR 码

要使用 IronBarcode 扫描条形码,您可以使用以下代码:


    using IronBarCode;

    // Scan a barcode
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;

    using IronBarCode;

    // Scan a barcode
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;
Imports IronBarCode

	' Scan a barcode
	Private barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode)
	Private text As String = barcode.Text
VB   C#

ZXing.org QR 码库和 IronBarcode:综合比较:图 8 - 在 C# 中创建条形码图像

IronBarcode 支持多种条形码类型,包括二维条形码、UPC-A、UPC-E、EAN-8、EAN-13、Code39、Code128、PDF417 等。

它基于 ZXing.NET 库,提供更快、更准确的条形码扫描和生成,同时还增加了新的特性和功能。

如何使用 IronBarcode

以下是如何使用 IronBarcode 的一些步骤:

第 1 步:安装 IronBarcode 库

要在 .NET 项目中使用 IronBarcode,首先需要使用 NuGet 安装 IronBarcode 库。在 NuGet 软件包管理器控制台中运行以下命令即可完成安装:


    Install-Package IronBarCode

第 2 步:生成条形码

要使用 IronBarcode 生成条码,您可以使用 BarcodeWriter 类。


    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Generate a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Generate a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.SaveAsImage("qrcode.png")
VB   C#

这段代码会创建一个 QR 码,上面的文字是 "你好,IronBarcode"。!"并将其保存为名为 "qrcode.png "的图像文件。

第 3 步:扫描条形码

要使用 IronBarcode 扫描条码,您可以使用 BarcodeReader 类。


    using IronBarCode;

    // Scan a QR code
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;

    using IronBarCode;

    // Scan a QR code
    var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
    string text = barcode.Text;
Imports IronBarCode

	' Scan a QR code
	Private barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode)
	Private text As String = barcode.Text
VB   C#

此代码从图像文件 "qrcode.png "中读取 QR 码,并返回条形码中编码的文本。

ZXing.org QR 码库和 IronBarcode:综合比较:图 9 - 扫描条形码

第 4 步:自定义条形码

IronBarcode 提供一系列自定义选项,允许您控制生成的条码扫描执行的外观和行为。

下面是一个如何使用 IronBarcode 定制 QR 码的示例,用于 条形码扫描 执行:


    using IronBarCode;

    // Customize a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.ResizeTo(400, 400);
    barcode.SetMargins(20);
    barcode.SetForegroundColor(Color.Black);
    barcode.SetBackgroundColor(Color.White);
    barcode.AddCaptionAbove("Scan me with your smartphone!");
    barcode.AddImageLogo("logo.png", 80, 80);
    barcode.SaveAsImage("qrcode.png");

    using IronBarCode;

    // Customize a QR code
    var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
    barcode.ResizeTo(400, 400);
    barcode.SetMargins(20);
    barcode.SetForegroundColor(Color.Black);
    barcode.SetBackgroundColor(Color.White);
    barcode.AddCaptionAbove("Scan me with your smartphone!");
    barcode.AddImageLogo("logo.png", 80, 80);
    barcode.SaveAsImage("qrcode.png");
Imports IronBarCode

	' Customize a QR code
	Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
	barcode.ResizeTo(400, 400)
	barcode.SetMargins(20)
	barcode.SetForegroundColor(Color.Black)
	barcode.SetBackgroundColor(Color.White)
	barcode.AddCaptionAbove("Scan me with your smartphone!")
	barcode.AddImageLogo("logo.png", 80, 80)
	barcode.SaveAsImage("qrcode.png")
VB   C#

该代码会生成一个 QR 码,上面写着 "你好,IronBarcode"。!",并对其进行自定义,将其大小调整为 400x400 像素,添加 20 像素边距,将前景色设置为黑色,背景色设置为白色,在条形码上方添加标题,并添加徽标图像。

IronBarcode 的功能

IronBarcode 建立在开源的 ZXing 库之上,但它扩展了 ZXing 库的功能,以支持更广泛的条形码类型,包括 QR 码、Code 128、Code 39、EAN-13、EAN-8、UPC-A 等等。

以下是 IronBarcode 的部分功能:

生成条形码

IronBarcode 可轻松生成各种类型和样式的条形码,包括线性条形码和二维条形码,并可自定义颜色、文本和图像叠加等功能。以下代码片段可生成 QR 码:


    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode);
    barcode.SaveAsJpeg("QRCode.jpg");

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode);
    barcode.SaveAsJpeg("QRCode.jpg");
Dim barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode)
	barcode.SaveAsJpeg("QRCode.jpg")
VB   C#

ZXing.org QR 码库和 IronBarcode:综合比较:图 10 - 要扫描的 Code128 条形码图像

读取条形码

IronBarcode 还提供功能强大的条码扫描器,可从图像、PDF 文件和实时摄像机流中读取条码。以下代码可从图像文件中读取 QR 码:


    var barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode);
    Console.WriteLine(barcode.Text);

    var barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode);
    Console.WriteLine(barcode.Text);
Dim barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode)
	Console.WriteLine(barcode.Text)
VB   C#

ZXing.org QR 码库和 IronBarcode:综合比较:图 11 - 读取存储在 PDF 中的条码

验证条形码

IronBarcode 还可以验证条形码,以确保条形码是有效的,可以被其他条形码阅读器扫描。以下代码片段验证了 Code 128 条形码:


    var barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128);
    if (barcode.IsValid)
    {
        Console.WriteLine("Barcode is valid.");
    }
    else
    {
        Console.WriteLine("Barcode is invalid.");
    }

    var barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128);
    if (barcode.IsValid)
    {
        Console.WriteLine("Barcode is valid.");
    }
    else
    {
        Console.WriteLine("Barcode is invalid.");
    }
Dim barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128)
	If barcode.IsValid Then
		Console.WriteLine("Barcode is valid.")
	Else
		Console.WriteLine("Barcode is invalid.")
	End If
VB   C#

转换条形码

IronBarcode 可以将条码从一种格式转换为另一种格式,例如将 Code 39 条码转换为 QR 码。以下代码片段可将 Code 39 条形码转换为 QR 码:


    var barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39);
    var qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode);
    qrCode.SaveAsJpeg("QRCode.jpg");

    var barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39);
    var qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode);
    qrCode.SaveAsJpeg("QRCode.jpg");
Dim barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39)
	Dim qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode)
	qrCode.SaveAsJpeg("QRCode.jpg")
VB   C#

IronBarcode 如何优于 ZXing 在线解码器

以下是 IronBarcode 优于 ZXing 的几个方面:

  1. 性能: IronBarcode 比 ZXing 更快,是需要高速条形码扫描和生成的网络应用程序的最佳选择。

  2. 易用性: IronBarcode的API简单直观,只需几行代码即可轻松创建和扫描条形码。另一方面,ZXing 的 API 可能比较复杂,初学者很难使用。

  3. 输出质量: IronBarcode 生成的条形码质量高,即使尺寸较小也易于读取。相比之下,ZXing 的条形码有时难以读取,尤其是在尺寸较小的情况下。

  4. 支持的格式: IronBarcode 支持多种条形码格式,包括 UPC-A、二维条形码等。相比之下,ZXing 项目仅支持有限的几种条形码格式。

  5. 许可: IronBarcode提供灵活的许可模式,允许开发人员根据自己的需要免费使用或购买许可。相比之下,ZXing 的许可具有限制性,使得开发人员很难在商业项目中使用该库。

ZXing.org QR 码库和 IronBarcode:综合比较:图 12 - 从多帧 TIFF 图像中读取条码

在性能、易用性、输出质量、支持格式和许可方面,IronBarcode 都优于 ZXing。

您想试用 IronBarcode 并了解它如何增强您的条码扫描和生成能力吗?我们很高兴为您提供 免费试用 供您测试 IronBarcode 的功能和优势。

在试用期间,您可以完全使用 IronBarcode 的所有强大功能,包括支持多种条码格式、高级定制选项以及与现有项目的无缝集成。

要开始试用,只需访问我们的网站并下载 IronBarcode 软件包。然后您就可以 免费试用 了解 IronBarcode 的所有功能,并亲身体验它如何简化您的条码扫描和生成工作流程。

< 前一页
如何在ZXing中为C#开发人员扫描条形码
下一步 >
IronBarcode & QrCoder C#之间的比较

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

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