与其他组件比较

IronBarcode & QrCoder C#之间的比较

发布 2023年三月12日
分享:

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

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

IronBarcode

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

QrCoder

QRCoder 是一个简单的 C# 库,可以创建 QR 代码。 它不依赖其他库,在 NuGet 上提供 .NET Framework 和 .NET Core PCL 版本。

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

  • 扫描二维码
  • 扫描 BarCode
  • 生成 QR 代码
  • 生成 BarCode

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

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

安装 IronBarcode

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

Install-Package BarCode

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

IronBarcode和QrCoder C#的比较 - 图 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 不提供将 QR 代码保存为图像的内置功能。 不过,我们可以通过将 QrCoder 解析为位图对象来保存它。 然后,我们可以使用 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 则没有。 我们必须创建一个位图对象,将二维码保存到文件中。这要求我们创建四个对象,以便使用 QrCoder 生成 QR 代码。 我们只需要在 IronBarcode 中创建一个对象就可以完成同样的工作。

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

使用 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#
IronBarcode 与 QrCoder C# 的比较 - 图 7:使用 IronBarcode 生成的条形码

使用 IronBarcode 生成条形码

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

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

IronBarcode 的条码生成时间

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

使用 QrCode 生成条形码

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

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

使用 IronBarcode 阅读 QR 码

以下代码将使用 IronBarcode 读取二维码。

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 中循环检索每个结果。 该功能有利于从文件或具有多个二维码的图片中读取二维码。

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 Library 不提供读取或扫描 QR 码的功能。

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

许可

IronBarcode 的授权许可

IronBarcode 可免费用于开发。 但是,在 visual studio 开发环境之外部署需要许可证。 许可证价格范围为 $749 至 2999 美元(美元). 如果您购买完整的Iron Suite.

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

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

QrCoder 的授权许可

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

何时使用 QrCoder

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

何时使用 IronBarcode

当我们需要生成二维码以外的功能时,IronBarcode 是一个很好的选择,例如:

  • 从图像或 PDF 中读取单个或多个 BarCode 和 QR 码。
  • 图像校正,包括倾斜、方向、噪音、低分辨率、对比度等。
  • 创建 BarCode 并将其应用于图像或 PDF 文档。
  • 将 BarCode 嵌入 HTML 文档。
  • 设计 BarCode 风格并添加注释文本。
  • 编写 QR 代码,允许添加徽标、颜色和高级 QR 对齐方式。

摘要

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

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

并排比较 IronBarcode 和 QrCoder

结论

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

QRCoder 是一个 C# .NET 库,可以生成基于 ISO/IEC 18004 的 QR 码,无需依赖其他库。 它提供了多个 QR 代码渲染类,包括 QRCode、ArtQRCode、AsciiQRCode 等。 不过,并非所有的呈现器都能在所有目标框架上使用,.NET Standard/.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.11 刚刚发布

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