在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在本教程中,我们将比较两个广泛使用的 C# 库--IronBarcode 和 QrCoder--用于处理二维码和条形码。
首先,让我们简要介绍一下这两个库:
IronBarcode 是由 Iron Software 创建和维护的一个库,可让 C# 软件工程师在 .NET 应用程序和网站中读写条形码和二维码。所有 .NET Frameworks 和 .NET Core Frameworks 均可通过 NuGet 获取该库。IronBarcode 只需一行代码即可读写条形码。
QRCoder 是一个简单的 C# 库,可用于创建 QR 代码。它不依赖于其他库,可通过 NuGet 以 .NET Framework 和 .NET Core PCL 版本获取。
这两个库都应具有以下主要功能:
我们将从这两个库中实现所有这些功能,并比较它们的性能。
首先,让我们在 Visual Studio 项目中安装这两个库。由于这两个库都有自己的 NuGet 包,我们将通过 NuGet 包管理器控制台安装它们。
要安装 IronBarcode,请在软件包管理器控制台中键入以下命令:
Install-Package BarCode
这将在我们的项目中安装 IronBarcode 库。
在软件包管理器控制台中键入以下命令
Install-Package QRCoder
这将在我们的项目中安装 QrCoder 库。
现在,我们将使用这两个库生成第一个二维码。
以下代码将生成 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")
创建 "Stopwatch "实例是为了测量程序的执行时间,以分析程序库的效率。
IronBarcode 生成并保存一个 QR 码需要 3503 毫秒。
以下示例代码将使用 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")
QrCoder 没有提供将二维码保存为图像的内置函数。不过,我们可以通过将 QrCoder 解析为 Bitmap 对象来保存 QR 码。然后,我们可以使用 Bitmap 提供的保存功能保存 QR 代码。
QrCoder 生成并保存一个 QR 码需要 592 毫秒。
IronBarcode 的执行时间为 3503 毫秒,而 QrCoder 仅需 592 毫秒。这使得 QrCoder 在性能上优于 IronBarcode。
在 IronBarcode 中生成 QR 码要简单得多,因为我们只需编写两行代码。而使用 QrCoder 库则需要五行代码。
IronBarcode 还提供了将生成的 QR 代码保存到文件中的内置功能,而 QrCoder 则没有。我们必须创建一个位图对象,才能将 QR 代码保存到文件中。这就要求我们创建四个对象来使用 QrCoder 生成 QR 代码。 而在 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")
使用 IronBarcode 生成条形码所需的执行时间如下:
生成一个条形码需要 3756 毫秒或 3.76 秒。
值得注意的是,QrCoder 库不提供创建条形码的功能。因此,如果需要创建条形码,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
IronBarcode 在读取 QR 码后会返回一个 "Enumerable"。我们需要在 "Enumerable "中循环检索每个结果。该功能有利于从文档或具有多个 QR 码的图像中读取 QR 码。
使用 IronBarcode 需要 3136 毫秒或 3.1 秒。
QrCoder 库不提供读取或扫描 QR 码的功能。
以下代码将使用 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
IronBarcode 在读取条码后会返回 Enumerable
。我们需要循环读取每个结果。它有利于从文档或图像中读取条形码,因为文档或图像中包含多个条形码。
上述代码生成的输出结果如下
QrCoder 库不提供读取或扫描 QR 码的功能。
现在,让我们来讨论一下这两个库的许可证选项。
IronBarcode 的开发是免费的。但是,如果要在 visual studio 开发环境之外进行部署,则需要许可证。许可证价格范围从"$liteLicense "到 2999 美元不等。 (美元).如果您购买完整的 Iron Suite.
QrCoder 是开源软件,因此无需任何许可。您可以在任何类型的环境中自由使用它。如果你喜欢开源开发,还可以为它的源代码作出贡献。
如果我们只需要生成 QR 码的功能,QRCoder 是最好的选择,因为它可以免费使用,不需要支付任何费用或订阅费用。
当我们需要生成 QR 码以外的功能时,IronBarcode 是一个不错的选择,例如
下表对 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, IronOCR和 IronWebScraper.购买完整的 Iron Suite 即可以超值折扣获得所有五种产品。
总之,IronBarcode 最适合需要同时处理条形码和二维码,并希望创建条形码生成器、二维码生成器、条形码阅读器和二维码阅读器的用户。另一方面,QRCoder 则适合那些只需要创建 QR 码生成器的用户。