與其他組件比較

IronBarcode與QrCoder C#的比較

發佈 2023年3月12日
分享:

在本教程中,我們將比較兩個廣泛使用的 C# 程式庫——IronBarcode 和 QrCoder——用於處理 QR 碼和條碼。

讓我們首先簡要介紹這兩個程式庫:

IronBarcode

IronBarcode 是 Iron Software 創建和維護的一個庫,使 C# 軟體工程師能夠在 .NET 應用和網站中讀取和寫入條形碼和 QR 碼。該庫在所有 .NET Framework 和 .NET Core Framework 中通過 NuGet 提供。IronBarcode 只需一行代碼即可讀取或寫入條形碼。

QrCoder

QrCoder 是一個簡單的 C# 程式庫,允許你創建 QR 碼。它不依賴其他程式庫,並且可在 NuGet 上獲得 .NET Framework 和 .NET Core PCL 版本。

這兩個程式庫應該具備以下主要功能:

  • 掃描 QR 碼
  • 掃描條碼
  • 生成 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

現在,我們將使用這兩個庫生成我們的第一個QR碼。

使用 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 Code 需要 3503 毫秒。

IronBarcode 與 QrCoder C# 的比較 - 圖 4:執行時間

IronBarcode 生成新條碼的執行時間

使用 QRCoder 生成 QR Code

以下範例程式碼將使用 QrCoder 生成一個 QR Code。

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 對象來保存它。然後,我們可以使用 Bitmap 提供的保存函數來保存 QR 碼。

IronBarcode 與 QrCoder 的 C# 比較 - 圖 5:QR Coder 的結果

QrCoder產生的條碼

Qrcoder 執行時間

QrCoder 生成並保存 QR Code 需時 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 是更好的選擇。

關於二維碼掃描,讓我們看看哪個庫是最佳選擇。

使用 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 Code

QrCoder 庫不提供讀取或掃描 QR Code 的功能。

使用 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 Code 的功能。

現在,讓我們討論這兩個庫的許可選項。

授權

IronBarcode 的授權

IronBarcode 在開發階段是免費的。然而,要在 Visual Studio 開發環境之外部署,需要取得授權。授權價格範圍從 $749 到 $2999。 (美元)如果您購買完整的 Iron Suite ,您可以獲得折扣 Iron Suite.

IronBarcode 與 QrCoder C# 的比較 - 圖11:Iron Licenses

請查看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 碼。該庫支持大多數條碼和 QR 碼標準,包括 39/93/128、UPC A/E、EAN 8/13 和 QR 等等。該庫會自動預處理條碼圖像,並提供旋轉、噪音、失真和傾斜修正,以提高速度和準確性。IronBarcode 與 32 位和 64 位系統、所有 .NET 語言,以及包括桌面、控制台、雲端、移動和網頁應用程序在內的多種平台兼容。它還允許開發者為 PDF、JPG、TIFF、GIF、BMP、PNG 和 HTML 文件寫入條碼和 QR 碼,並修改文本顏色、大小、旋轉和質量。該庫是安全的,並不使用網絡服務或傳輸數據。IronBarcode 提供免費試用,並提供三種許可選項,包括個人使用的 Lite 版本、多達 10 名開發人員使用的 Professional 包,以及企業使用的 Unlimited 包。

QRCoder 是一個基於 ISO/IEC 18004 的 C# .NET 庫,可以生成 QR 碼,且不依賴於其他庫。它提供幾個 QR 碼渲染類,包括 QRCode、ArtQRCode、AsciiQRCode 等等。然而,並非所有渲染器都適用於所有目標框架,.NET Standard/.NET >=5.0 的版本有一些限制。QRCoder 是免費的,並且不需要許可。

相較於 QRCoder,IronBarcode 更加多功能,因為它支持所有 .NET Framework 版本,擁有更廣範圍的功能,並提供 SaaS 和 OEM 重新分發覆蓋。IronBarcode 還提供全面的文檔和 24/7 支持,而 QRCoder 則沒有。IronBarcode 需要付費許可,但考慮到它提供的功能和支持,這個費用是合理的。

IronBarcode 是由 Iron Software,同時還提供其他有用的庫,包括 IronPDF, IronXL, IronOCR,和 IronWebScraper購買完整的 Iron Suite 以驚人折扣獲得所有五款產品。

總結來說,IronBarcode 最適合需要同時處理條形碼和 QR 碼的用戶,並且希望創建條形碼生成器、QR 碼生成器、條形碼閱讀器和 QR 碼閱讀器。另一方面,QRCoder 適合那些只需要創建 QR 碼生成器的用戶。

< 上一頁
ZXing.org QR Code Library 和 IronBarcode:全面比較
下一個 >
ZXing 解碼器與 IronBarcode 的比較

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 1,203,227 查看許可證 >