跳至頁尾內容
與其他組件的比較

IronBarcode和Aspose.Barcode之間的比較

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

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

IronBarcode

IronBarcode是由Iron Software建立和維護的程式庫,使C#軟體工程師能夠在.NET應用程式和網站中讀寫條碼和QR碼。 它在NuGet上提供,適用於所有.NET Framework和.NET Core Framework。 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程式庫。

A Comparison Between IronBarcode and QrCoder C# - Figure 2: 正在安裝QrCoder

正在安裝QrCoder

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

使用IronBarcode生成QR碼

以下程式碼將生成一個QR碼。

using System;
using System.Diagnostics;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Create a stopwatch to measure the execution time
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Generate a QR code
        var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");

        // Save the generated QR code as a PNG file
        qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode.png");

        // Stop the stopwatch and output the execution time
        stopwatch.Stop();
        Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
    }
}
using System;
using System.Diagnostics;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Create a stopwatch to measure the execution time
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Generate a QR code
        var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");

        // Save the generated QR code as a PNG file
        qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode.png");

        // Stop the stopwatch and output the execution time
        stopwatch.Stop();
        Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
    }
}
Imports System
Imports System.Diagnostics
Imports IronBarCode

Friend Class Program
	Shared Sub Main()
		' Create a stopwatch to measure the execution time
		Dim stopwatch As New Stopwatch()
		stopwatch.Start()

		' Generate a QR code
		Dim qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder")

		' Save the generated QR code as a PNG file
		qrCode.SaveAsPng("D:\Barcode Images\QrCodeByIronBarcode.png")

		' Stop the stopwatch and output the execution time
		stopwatch.Stop()
		Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms")
	End Sub
End Class
$vbLabelText   $csharpLabel

建立Stopwatch實例來測量程式執行時間,以分析程式庫的效率。

A Comparison Between IronBarcode and QrCoder C# - Figure 3: IronBarcode Result

從IronBarcode生成的條碼

IronBarcode的執行時間

IronBarcode花費3503毫秒來生成和保存一個QR碼。

A Comparison Between IronBarcode and QrCoder C# - Figure 4: Execution Time

生成新條碼的IronBarcode執行時間

使用QrCoder建立QR碼

以下樣本程式碼將使用QrCoder生成一個QR碼。

using System;
using System.Drawing;
using QRCoder;

class Program
{
    static void Main()
    {
        // Initialize the QRCodeGenerator
        QRCodeGenerator qrGenerator = new QRCodeGenerator();

        // Generate QRCodeData with specified error correction level
        QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);

        // Create QRCode object
        QRCode qrCode = new QRCode(qrCodeData);

        // Convert QRCode to Bitmap
        Bitmap qrCodeImage = qrCode.GetGraphic(20);

        // Save the QR code as a PNG file
        qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
    }
}
using System;
using System.Drawing;
using QRCoder;

class Program
{
    static void Main()
    {
        // Initialize the QRCodeGenerator
        QRCodeGenerator qrGenerator = new QRCodeGenerator();

        // Generate QRCodeData with specified error correction level
        QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);

        // Create QRCode object
        QRCode qrCode = new QRCode(qrCodeData);

        // Convert QRCode to Bitmap
        Bitmap qrCodeImage = qrCode.GetGraphic(20);

        // Save the QR code as a PNG file
        qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
    }
}
Imports System
Imports System.Drawing
Imports QRCoder

Friend Class Program
	Shared Sub Main()
		' Initialize the QRCodeGenerator
		Dim qrGenerator As New QRCodeGenerator()

		' Generate QRCodeData with specified error correction level
		Dim qrCodeData As QRCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q)

		' Create QRCode object
		Dim qrCode As New QRCode(qrCodeData)

		' Convert QRCode to Bitmap
		Dim qrCodeImage As Bitmap = qrCode.GetGraphic(20)

		' Save the QR code as a PNG file
		qrCodeImage.Save("D:\Barcode Images\QrCodeByQrCoder.png")
	End Sub
End Class
$vbLabelText   $csharpLabel

QrCoder不提供內建功能將QR碼保存為圖像。 但是,我們可以通過將QrCoder解析為Bitmap物件來保存它。 然後我們可以使用Bitmap提供的保存功能來保存QR碼。

A Comparison Between IronBarcode and QrCoder C# - Figure 5: QR Coder Result

QrCoder生成的條碼

QrCoder的執行時間

QrCoder花費592毫秒來生成和保存一個QR碼。

A Comparison Between IronBarcode and QrCoder C# - Figure 6: QrCoder's Execution Time

QrCoder生成新條碼所需的時間

分析

IronBarcode所需的執行時間是3503毫秒,而QrCoder只需要592毫秒。 這使得QrCoder在性能上比IronBarcode更快。

在IronBarcode中生成QR碼要簡單得多,因為我們只需要寫兩行程式碼。 使用QrCoder程式庫,則需要五行程式碼。

IronBarcode還提供了內建功能,可以將生成的QR碼保存到文件中,而QrCoder沒有。 我們需要建立一個Bitmap物件來將QR碼保存到文件中。這需要我們建立四個物件來使用QrCoder生成QR碼。 在IronBarcode中,我們只需建立一個物件即可完成相同的事情。

接下來,我們將使用這兩個程式庫生成條碼。

使用IronBarcode生成條碼

以下程式碼將使用IronBarcode生成條碼:

using IronBarCode;

class Program
{
    static void Main()
    {
        // Generate a barcode with Code128 encoding
        var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);

        // Save the generated barcode as a PNG file
        barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
    }
}
using IronBarCode;

class Program
{
    static void Main()
    {
        // Generate a barcode with Code128 encoding
        var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);

        // Save the generated barcode as a PNG file
        barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
    }
}
Imports IronBarCode

Friend Class Program
	Shared Sub Main()
		' Generate a barcode with Code128 encoding
		Dim barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128)

		' Save the generated barcode as a PNG file
		barcode.SaveAsPng("D:\Barcode Images\BarcodeByIronBarcode.png")
	End Sub
End Class
$vbLabelText   $csharpLabel
A Comparison Between IronBarcode and QrCoder C# - Figure 7: 使用IronBarcode生成的條碼

使用IronBarcode生成的條碼

使用IronBarcode生成條碼所需的執行時間如下:

A Comparison Between IronBarcode and QrCoder C# - Figure 8: Execution time for IronBarcode to generate a new Barcode

IronBarcode的條碼生成時間

生成條碼需要3756毫秒或3.76秒。

使用QrCoder生成條碼

值得注意的是,QrCoder程式庫不提供建立條碼的功能。 因此,如果您需要建立條碼,則IronBarcode是更好的選擇。

關於QR碼掃描,讓我們看看哪個程式庫是最佳選擇。

使用IronBarcode讀取QR碼

以下程式碼將使用IronBarcode讀取QR碼。

using System;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Read QR code from an image file
        BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");

        // Check if any QR codes are found
        if (results != null)
        {
            // Loop through each result and print extracted text
            foreach (BarcodeResult result in results)
            {
                Console.WriteLine("Extracted text from QR Code is: " + result.Text);
            }
        }
    }
}
using System;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Read QR code from an image file
        BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");

        // Check if any QR codes are found
        if (results != null)
        {
            // Loop through each result and print extracted text
            foreach (BarcodeResult result in results)
            {
                Console.WriteLine("Extracted text from QR Code is: " + result.Text);
            }
        }
    }
}
Imports System
Imports IronBarCode

Friend Class Program
	Shared Sub Main()
		' Read QR code from an image file
		Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\QrcodeByIronBarcode.png")

		' Check if any QR codes are found
		If results IsNot Nothing Then
			' Loop through each result and print extracted text
			For Each result As BarcodeResult In results
				Console.WriteLine("Extracted text from QR Code is: " & result.Text)
			Next result
		End If
	End Sub
End Class
$vbLabelText   $csharpLabel

IronBarcode返回一個Enumerable作為讀取QR碼的結果。 我們需要遍歷Enumerable以檢索每個結果。 此功能對於從文件或具有多個QR碼的圖像中讀取QR碼很有幫助。

A Comparison Between IronBarcode and QrCoder C# - Figure 9: IronBarcode's QR Code Scanning Execution Time

IronBarcode從文件中讀取/掃描所有QR碼所需的時間

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

使用QrCoder讀取QR碼

QrCoder程式庫不提供讀取或掃描QR碼的功能。

使用IronBarcode讀取條碼

以下程式碼將掃描IronBarcode使用的條碼。

using System;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Read barcode from an image file
        BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");

        // Check if any barcodes are found
        if (results != null)
        {
            // Loop through each result and print extracted text
            foreach (BarcodeResult result in results)
            {
                Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
            }
        }
    }
}
using System;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Read barcode from an image file
        BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");

        // Check if any barcodes are found
        if (results != null)
        {
            // Loop through each result and print extracted text
            foreach (BarcodeResult result in results)
            {
                Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
            }
        }
    }
}
Imports System
Imports IronBarCode

Friend Class Program
	Shared Sub Main()
		' Read barcode from an image file
		Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\BarcodeByIronBarcode.png")

		' Check if any barcodes are found
		If results IsNot Nothing Then
			' Loop through each result and print extracted text
			For Each result As BarcodeResult In results
				Console.WriteLine("Text Extracted from Barcode is: " & result.Text)
			Next result
		End If
	End Sub
End Class
$vbLabelText   $csharpLabel

IronBarcode返回Enumerable作為讀取條碼的結果。 我們需要遍歷它以獲取每個結果。 它對於從文件或具有多個條碼的圖像中讀取條碼很有幫助。

以上程式碼生成的輸出如下:

A Comparison Between IronBarcode and QrCoder C# - Figure 10: Execution time for IronBarcode Scan one or more barcodes

IronBarcode掃描PDF或圖像中的條碼所需的時間

使用QrCoder讀取條碼

QrCoder程式庫不提供讀取或掃描QR碼的功能。

現在,讓我們討論這兩個程式庫的授權選項。

授權

IronBarcode的授權

IronBarcode對於開發是免費的。 然而,部署在Visual Studio開發環境之外需要許可證。 許可證價格範圍從$liteLicense到$unlimitedLicense(美元)。 如果您購買完整的Iron Suite,可以獲得折扣。

A Comparison Between IronBarcode and QrCoder C# - Figure 11: Iron Licenses

Check out IronBarcode's [licensing page](/csharp/barcode/licensing/) for more information about available licenses.

QrCoder的授權

QrCoder是開源的,因此不需要任何許可證。 您可以在任何型別的環境中自由使用它。 如果您喜歡開源開發,您也可以為其源程式碼做出貢獻。

什麼時候使用QrCoder

如果我們只需要生成QR碼的功能,那麼QrCoder是最好的選擇,因為它是免費使用的,不需要支付任何費用或訂閱費。

什麼時候使用IronBarcode

當我們需要除了生成QR碼之外的功能時,IronBarcode是一個很好的選擇,比如:

  • 從圖像或PDF中讀取單個或多個條碼和QR碼。
  • 針對傾斜、方向、噪音、低解析度、對比度等進行圖像校正。
  • 建立條碼並將其應用於圖像或PDF文件。
  • 將條碼嵌入到HTML文件中。
  • 標樣條碼並新增註釋文字。
  • 書寫QR碼時允許新增商標、顏色和高級QR對齊。

總結

下表比較了IronBarcode和QrCoder。

A Comparison Between IronBarcode and QrCoder C# - Figure 12: Comparing the two libraries

IronBarcode和QrCoder的並排比較

結論

IronBarcode for .NET允許開發者在他們的.NET應用中讀寫條碼和QR碼,只需一行程式碼。 該程式庫支援大多數條碼和QR碼標準,包括39/93/128、UPC A/E、EAN 8/13和QR等。 該程式庫自動預處理條碼圖像,並提供旋轉、雜訊、失真和傾斜校正,以提高速度和準確性。 IronBarcode與32位和64位系統、所有.NET語言相容,並支援多種平臺,包括桌面、控制檯、雲端、移動和Web應用程式。 它還允許開發者為PDF、JPG、TIFF、GIF、BMP、PNG和HTML文件編寫條碼和QR碼,並修改文字的顏色、大小、旋轉和質量。 該程式庫是安全的,並且不使用Web服務或通過互聯網傳送資料。 IronBarcode可供免費試用,並提供三種許可選項,包括一個供個人使用的Lite版本、一個適用於多達10位開發者團隊的Professional套裝以及一個適用於公司的無限套裝。

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

IronBarcode比QrCoder更具多功能性,因為它支援所有.NET Framework版本,擁有更廣泛的功能,並且提供SaaS和OEM重新分發範圍。 IronBarcode還提供全面的文件和24/7支持,而QrCoder沒有。 IronBarcode的許可費用合理,考慮到其提供的功能和支持。

IronBarcode由Iron Software開發,該公司還提供其他有用的程式庫,包括IronPDFIronXLIronOCRIronWebScraper。 購買完整的Iron Suite以獲得所有五個產品的極大折扣。

總結來說,IronBarcode最適合需要同時處理條碼和QR碼並想要建立條碼生成器、QR碼生成器、條碼讀取器和QR碼讀取器的人。 另一方面,QrCoder適用於只需要建立QR碼生成器的人。

請注意QrCoder是其各自擁有者的註冊商標。 本網站與QrCoder沒有任何關聯、未得到其認可或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供資訊參考,並反映了撰寫時公開可用的資訊。

常見問題

如何在 C# 中生成 QR 碼?

要在 C# 中生成 QR 碼,您可以使用 QrCoder 程式庫,這是一個簡單且開源的程式庫。或者,您可以使用 IronBarcode 來獲取更多高級功能,例如樣式化 QR 碼並將它們整合到文件中。

using IronBarcode 相較於 QrCoder 的優勢是什麼?

IronBarcode 提供了廣泛的功能,如讀取條碼和 QR 碼,圖像校正,以及將條碼嵌入到 PDF 和其他文件中。它適合需要完整條碼和 QR 碼操作的專案。

是否有免費的程式庫可以在 C# 中生成 QR 碼?

是的,QrCoder 是一個免費且開源的程式庫,用於在 C# 中生成 QR 碼。它不需要授權,是一個成本效益高的簡單 QR 碼生成選擇。

我可以使用 QrCoder 讀取 QR 碼嗎?

不,QrCoder 不支持讀取或掃描 QR 碼。若要讀取 QR 碼,您可以使用 IronBarcode,因為它提供了此功能以及額外的特性。

如何在 .NET 專案中安裝 QR 碼程式庫?

您可以使用 NuGet 套件管理器控制台和命令 Install-Package QRCoder 安裝 QrCoder。對於 IronBarcode,請使用 Install-Package IronBarcode

IronBarcode 與 QrCoder 在 QR 碼生成上的執行時間差異是什麼?

QrCoder 較快,生成並保存 QR 碼大約需 592 毫秒,而 IronBarcode 約需 3503 毫秒。然而,IronBarcode 除了 QR 碼生成之外,還提供更多高級功能。

IronBarcode 部署時是否需要授權?

是的,IronBarcode 在 Visual Studio 開發環境之外部署需要授權。它提供不同的授權選擇,包括 Lite、Professional 和 Unlimited 套裝。

IronBarcode 提供什麼條碼處理功能?

IronBarcode 允許讀寫條碼和 QR 碼、圖像校正、樣式選項以及將條碼嵌入到如 PDF 等文件中,使其成為一個全面的條碼處理工具。

我應該選擇哪個程式庫來生成簡單的 QR 碼?

對於簡單的 QR 碼生成,QrCoder 是一個合適的選擇,因為它易於使用且免費授權。然而,對於更高級的任務,建議使用 IronBarcode。

我可以在 C# 中將 QR 碼整合到 PDF 中嗎?

是的,您可以使用 IronBarcode 將 QR 碼整合到 PDF 中。它提供讀寫 QR 碼和條碼並無縫嵌入到文件中的功能。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話