与其他组件比较

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

发布 2023年四月19日
分享:

如果您已经在技术手机/管理手机中拥有条形码的电子图像,并希望将其破译为英文文本数据,条形码扫描仪可能不是最佳工具。 此外,条形码扫描仪只能读取一维条形码,而一维条形码的存储容量、域状态、支持格式都受到限制,并且只能与 Windows RT 类库一起使用。 如今,二维 BarCode(也称二维码)在翻译的过程中,必须确保技术的准确性,同时解释这些开发人员工具的功能和优点。

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

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

创建和扫描 BarCode 已成为许多企业避免垃圾邮件的必要手段。 创建条形码的两个流行工具是开源的 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

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

  3. 选择图片后,请单击 "提交 "按钮。

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

  4. 如果找到了可识别的代码,该工具将解码 QR 代码并显示生成的信息。

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

    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 开发人员创建的功能强大的条形码生成和扫描库。

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

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

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

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

下面是如何使用 IronBarcode 生成二维码的示例:


    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:生成 BarCode

要使用 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:扫描 BarCode

要使用 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 "中读取二维码,并返回条形码中编码的文本。

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

第 4 步:定制 BarCode

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 库之上,但它扩展了自己的功能,支持更广泛的条形码类型,包括 QR 码、Code 128、Code 39、EAN-13、EAN-8、UPC-A 等等。

以下是 IronBarcode 可以做的一些事情:

生成 BarCode

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 中的条码

验证 BarCode

IronBarcode 还可以验证条形码,以确保条形码有效并能被其他条形码阅读器扫描。 以下代码片段用于验证 Code 128 BarCode:


    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#

转换 BarCode

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 的 BarCode 有时难以阅读,尤其是在尺寸较小的情况下。

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

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

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

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

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

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

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

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