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