与其他组件比较

IronBarcode & QrCoder C#之间的比较

发布 2023年三月12日
分享:

在本教程中,我们将比较两个广泛使用的 C# 库--IronBarcode 和 QrCoder--用于处理二维码和条形码。

首先,让我们简要介绍一下这两个库:

IronBarcode

IronBarcode 是由 Iron Software 创建和维护的一个库,可让 C# 软件工程师在 .NET 应用程序和网站中读写条形码和二维码。所有 .NET Frameworks 和 .NET Core Frameworks 均可通过 NuGet 获取该库。IronBarcode 只需一行代码即可读写条形码。

QrCoder

QRCoder 是一个简单的 C# 库,可用于创建 QR 代码。它不依赖于其他库,可通过 NuGet 以 .NET Framework 和 .NET Core PCL 版本获取。

这两个库都应具有以下主要功能:

  • 扫描二维码
  • 扫描条形码
  • 生成 QR 码
  • 生成条形码

我们将从这两个库中实现所有这些功能,并比较它们的性能。

首先,让我们在 Visual Studio 项目中安装这两个库。由于这两个库都有自己的 NuGet 包,我们将通过 NuGet 包管理器控制台安装它们。

安装 IronBarcode

要安装 IronBarcode,请在软件包管理器控制台中键入以下命令:

Install-Package BarCode

这将在我们的项目中安装 IronBarcode 库。

A Comparison Between IronBarcode and QrCoder C# - Figure 1: 安装 IronBarcode

安装 IronBarcode

安装 QrCoder

在软件包管理器控制台中键入以下命令

Install-Package QRCoder

这将在我们的项目中安装 QrCoder 库。

IronBarcode 和 QrCoder C# 的比较 - 图 2:安装 IronBarcode

安装 QrCoder

现在,我们将使用这两个库生成第一个二维码。

使用 IronBarcode 生成 QR 码

以下代码将生成 QR 码。

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");
qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode");
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");
qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode");
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
Dim qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder")
qrCode.SaveAsPng("D:\Barcode Images\QrCodeByIronBarcode")
stopwatch.Stop()
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms")
VB   C#

创建 "Stopwatch "实例是为了测量程序的执行时间,以分析程序库的效率。

IronBarcode 和 QrCoder C# 的比较 - 图 3:IronBarcode 结果

从 IronBarcode 生成条码

IronBarcode 的执行时间

IronBarcode 生成并保存一个 QR 码需要 3503 毫秒。

IronBarcode 和 QrCoder C# 的比较 - 图 4:执行时间

IronBarcode 生成新条码的执行时间

使用 QRCoder 创建 QR 码

以下示例代码将使用 QrCoder 生成 QR 码。

QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
Dim qrGenerator As New QRCodeGenerator()
Dim qrCodeData As QRCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q)
Dim qrCode As New QRCode(qrCodeData)
Dim qrCodeImage As Bitmap = qrCode.GetGraphic(20)
qrCodeImage.Save("D:\Barcode Images\QrCodeByQrCoder.png")
VB   C#

QrCoder 没有提供将二维码保存为图像的内置函数。不过,我们可以通过将 QrCoder 解析为 Bitmap 对象来保存 QR 码。然后,我们可以使用 Bitmap 提供的保存功能保存 QR 代码。

IronBarcode 和 QrCoder C# 的比较 - 图 5:QR 编码器的结果

QrCoder 生成的条形码

Qrcoder 的执行时间

QrCoder 生成并保存一个 QR 码需要 592 毫秒。

IronBarcode 和 QrCoder C# 的比较 - 图 6: QrCoder's Execution Time

QrCoder 生成新条形码所需的时间

分析

IronBarcode 的执行时间为 3503 毫秒,而 QrCoder 仅需 592 毫秒。这使得 QrCoder 在性能上优于 IronBarcode。

在 IronBarcode 中生成 QR 码要简单得多,因为我们只需编写两行代码。而使用 QrCoder 库则需要五行代码。

IronBarcode 还提供了将生成的 QR 代码保存到文件中的内置功能,而 QrCoder 则没有。我们必须创建一个位图对象,才能将 QR 代码保存到文件中。这就要求我们创建四个对象来使用 QrCoder 生成 QR 代码。 而在 IronBarcode 中,我们只需创建一个对象即可完成同样的工作。

接下来,我们将使用这两个库生成条形码。

使用 IronBarcode 生成条形码

以下代码将使用 IronBarcode 生成条形码:

var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);
barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);
barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
Dim barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128)
barcode.SaveAsPng("D:\Barcode Images\BarcodeByIronBarcode.png")
VB   C#
A Comparison Between IronBarcode and QrCoder C# - Figure 7: 使用 IronBarcode 生成条形码

使用 IronBarcode 生成条形码

使用 IronBarcode 生成条形码所需的执行时间如下:

IronBarcode 和 QrCoder C# 之间的比较 - 图 8:IronBarcode 生成新条码的执行时间

IronBarcode 的条码生成时间

生成一个条形码需要 3756 毫秒或 3.76 秒。

使用 QrCoder 生成条形码

值得注意的是,QrCoder 库不提供创建条形码的功能。因此,如果需要创建条形码,IronBarcode 是更好的选择。

关于 QR 码扫描,让我们看看哪个库是最佳选择。

使用 IronBarcode 读取 QR 码

以下代码将使用 IronBarcode 读取 QR 码。

BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");
if (results != null)
{
    foreach (BarcodeResult result in results)
    {
        Console.WriteLine("Extracted text from QR Code is: "+result.Text);
    }
}
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");
if (results != null)
{
    foreach (BarcodeResult result in results)
    {
        Console.WriteLine("Extracted text from QR Code is: "+result.Text);
    }
}
Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\QrcodeByIronBarcode.png")
If results IsNot Nothing Then
	For Each result As BarcodeResult In results
		Console.WriteLine("Extracted text from QR Code is: " & result.Text)
	Next result
End If
VB   C#

IronBarcode 在读取 QR 码后会返回一个 "Enumerable"。我们需要在 "Enumerable "中循环检索每个结果。该功能有利于从文档或具有多个 QR 码的图像中读取 QR 码。

IronBarcode 和 QrCoder C# 的比较 - 图 9: IronBarcode's QR Code Scanning Execution Time

IronBarcode 读取/扫描文档中所有 QR 码所需的时间

使用 IronBarcode 需要 3136 毫秒或 3.1 秒。

使用 QrCoder 读取 QR 码

QrCoder 库不提供读取或扫描 QR 码的功能。

使用 IronBarcode 读取条形码

以下代码将使用 IronBarcode 扫描条形码。

BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");
if (results != null)
{
    foreach (BarcodeResult result in results)
    {
        Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
    }
}
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");
if (results != null)
{
    foreach (BarcodeResult result in results)
    {
        Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
    }
}
Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\BarcodeByIronBarcode.png")
If results IsNot Nothing Then
	For Each result As BarcodeResult In results
		Console.WriteLine("Text Extracted from Barcode is: " & result.Text)
	Next result
End If
VB   C#

IronBarcode 在读取条码后会返回 Enumerable。我们需要循环读取每个结果。它有利于从文档或图像中读取条形码,因为文档或图像中包含多个条形码。

上述代码生成的输出结果如下

IronBarcode 与 QrCoder C# 的比较 - 图 10:IronBarcode 的执行时间 扫描一个或多个条形码

IronBarcode 扫描 PDF 或图像中的条形码所需的时间

使用 QrCoder 读取条形码

QrCoder 库不提供读取或扫描 QR 码的功能。

现在,让我们来讨论一下这两个库的许可证选项。

许可

IronBarcode 的授权许可

IronBarcode 的开发是免费的。但是,如果要在 visual studio 开发环境之外进行部署,则需要许可证。许可证价格范围从"$liteLicense "到 2999 美元不等。 (美元).如果您购买完整的 Iron Suite.

IronBarcode 和 QrCoder C# 的比较 - 图 11:Iron 许可证

请查看 IronBarcode 的 [许可页面](/csharp/barcode/licensing/) 了解更多关于可用许可的信息。

QrCoder 的授权许可

QrCoder 是开源软件,因此无需任何许可。您可以在任何类型的环境中自由使用它。如果你喜欢开源开发,还可以为它的源代码作出贡献。

何时使用 QrCoder

如果我们只需要生成 QR 码的功能,QRCoder 是最好的选择,因为它可以免费使用,不需要支付任何费用或订阅费用。

何时使用 IronBarcode

当我们需要生成 QR 码以外的功能时,IronBarcode 是一个不错的选择,例如

  • 从图像或 PDF 文件中读取单个或多个条形码和 QR 码。
  • 纠正图像倾斜、方向、噪点、低分辨率、对比度等。
  • 创建条形码并将其应用于图像或 PDF 文档。
  • 将条形码嵌入 HTML 文档。
  • 设计条形码样式并添加注释文本。
  • 编写 QR 代码,可添加徽标、颜色和高级 QR 对齐方式。

摘要

下表对 IronBarcode 和 QrCoder 进行了比较。

IronBarcode 和 QrCoder C# 的比较 - 图 12:两个程序库的比较

并排比较 IronBarcode 和 QrCoder

结论

IronBarcode for .NET允许开发人员在其.NET应用程序中使用一行代码读写条形码和二维码。该库支持大多数条形码和 QR 码标准,包括 39/93/128、UPC A/E、EAN 8/13 和 QR 等。该库可自动预处理条形码图像,并对旋转、噪音、扭曲和倾斜进行校正,以提高速度和准确性。IronBarcode 兼容 32 位和 64 位系统、所有 .NET 语言和各种平台,包括桌面、控制台、云、移动和 Web 应用程序。它还允许开发人员为 PDF、JPG、TIFF、GIF、BMP、PNG 和 HTML 文档编写条形码和 QR 码,并修改文本颜色、大小、旋转和质量。该库是安全的,不使用网络服务,也不在互联网上发送数据。IronBarcode 可供免费试用,并提供三种许可选项,包括供个人使用的精简版、供多达 10 名开发人员的团队使用的专业版以及供公司使用的无限版。

QRCoder 是一个 C# .NET 库,可生成基于 ISO/IEC 18004 的 QR 码,无需依赖其他库。它提供多个 QR 码呈现类,包括 QRCode、ArtQRCode、AsciiQRCode 等。不过,并非所有的渲染器都适用于所有的目标框架,.NET 标准/.NET >=5.0 版本也有一些限制。QRCoder 是免费的,无需授权。

IronBarcode 比 QRCoder 功能更全面,因为它支持所有 .NET Framework 版本,具有更广泛的功能,并提供 SaaS 和 OEM 再分发服务。IronBarcode 还提供全面的文档和 24/7 全天候支持,而 QRCoder 则没有。IronBarcode 需要支付许可费,但考虑到其提供的功能和支持,许可费还是比较合理的。

IronBarcode 是由以下公司开发的一个库 铁软件它还提供其他有用的库,包括 IronPDF, IronXL, IronOCRIronWebScraper.购买完整的 Iron Suite 即可以超值折扣获得所有五种产品。

总之,IronBarcode 最适合需要同时处理条形码和二维码,并希望创建条形码生成器、二维码生成器、条形码阅读器和二维码阅读器的用户。另一方面,QRCoder 则适合那些只需要创建 QR 码生成器的用户。

< 前一页
ZXing.org二维码库和IronBarcode:全面比较
下一步 >
ZXing解码器与IronBarcode的比较

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

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