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程式庫。
正在安裝IronBarcode
安裝QrCoder
在套件管理器控制台中輸入以下命令:
Install-Package QRCoder
這將在我們的專案中安裝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
建立Stopwatch實例來測量程式執行時間,以分析程式庫的效率。
從IronBarcode生成的條碼
IronBarcode的執行時間
IronBarcode花費3503毫秒來生成和保存一個QR碼。
生成新條碼的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
QrCoder不提供內建功能將QR碼保存為圖像。 但是,我們可以通過將QrCoder解析為Bitmap物件來保存它。 然後我們可以使用Bitmap提供的保存功能來保存QR碼。
QrCoder生成的條碼
QrCoder的執行時間
QrCoder花費592毫秒來生成和保存一個QR碼。
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
使用IronBarcode生成的條碼
使用IronBarcode生成條碼所需的執行時間如下:
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
IronBarcode返回一個Enumerable作為讀取QR碼的結果。 我們需要遍歷Enumerable以檢索每個結果。 此功能對於從文件或具有多個QR碼的圖像中讀取QR碼很有幫助。
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
IronBarcode返回Enumerable作為讀取條碼的結果。 我們需要遍歷它以獲取每個結果。 它對於從文件或具有多個條碼的圖像中讀取條碼很有幫助。
以上程式碼生成的輸出如下:
IronBarcode掃描PDF或圖像中的條碼所需的時間
使用QrCoder讀取條碼
QrCoder程式庫不提供讀取或掃描QR碼的功能。
現在,讓我們討論這兩個程式庫的授權選項。
授權
IronBarcode的授權
IronBarcode對於開發是免費的。 然而,部署在Visual Studio開發環境之外需要許可證。 許可證價格範圍從$liteLicense到$unlimitedLicense(美元)。 如果您購買完整的Iron Suite,可以獲得折扣。
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。
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開發,該公司還提供其他有用的程式庫,包括IronPDF、IronXL、IronOCR和IronWebScraper。 購買完整的Iron Suite以獲得所有五個產品的極大折扣。
總結來說,IronBarcode最適合需要同時處理條碼和QR碼並想要建立條碼生成器、QR碼生成器、條碼讀取器和QR碼讀取器的人。 另一方面,QrCoder適用於只需要建立QR碼生成器的人。
常見問題
如何在 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 碼和條碼並無縫嵌入到文件中的功能。

