Porównanie IronBarcode i QrCoder C#
W tym samouczku porównamy dwie powszechnie używane biblioteki C# — IronBarcode i QrCoder — służące do pracy z kodami QR i kodami kreskowymi.
Zacznijmy od krótkiego wprowadzenia do obu bibliotek:
IronBarcode
IronBarcode to biblioteka stworzona i utrzymywana przez Iron Software, która umożliwia inżynierom oprogramowania C# odczytywanie i zapisywanie kodów kreskowych oraz kodów QR w aplikacjach .NET i na stronach internetowych. Jest dostępna na NuGet dla wszystkich platform .NET Framework i .NET Core. IronBarcode wymaga tylko jednej linii kodu do odczytu lub zapisu kodów kreskowych.
QrCoder
QRCoder to prosta biblioteka C#, która pozwala tworzyć kody QR. Nie ma żadnych zależności od innych bibliotek i jest dostępna w serwisie NuGet w wersjach .NET Framework oraz .NET Core PCL.
Obie biblioteki powinny posiadać następujące główne funkcje:
- Zeskanuj kod QR
- Zeskanuj kod kreskowy
- Wygeneruj kod QR
- Generowanie kodu kreskowego BARCODE
Wdrożymy wszystkie te funkcje z obu bibliotek i porównamy ich wydajność.
Najpierw zainstalujmy obie biblioteki w naszym projekcie Visual Studio. Ponieważ obie biblioteki mają własne pakiety NuGet, zainstalujemy je za pomocą konsoli NuGet Package Manager Console.
Zainstaluj IronBarcode
Aby zainstalować IronBarcode, wpisz następujące polecenie w konsoli menedżera pakietów:
Install-Package BarCode
Spowoduje to zainstalowanie biblioteki IronBarcode w naszym projekcie.
Instalacja IronBarcode
Zainstaluj QrCoder
Wpisz następujące polecenie w konsoli menedżera pakietów:
Install-Package QRCoder
Spowoduje to zainstalowanie biblioteki QrCoder w naszym projekcie.
Instalacja QrCoder
Teraz wygenerujemy nasz pierwszy kod QR przy użyciu obu bibliotek.
Generuj kody QR za pomocą IronBarcode
Poniższy kod wygeneruje kod 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
Instancja Stopwatch jest tworzona w celu pomiaru czasu wykonania programu, aby przeanalizować wydajność biblioteki.
BarCode wygenerowany przez IronBarcode
Czas wykonania IronBarcode
Generowanie i zapisanie kodu QR zajmuje IronBarcode 3503 ms.
Czas wykonania IronBarcode przy generowaniu nowych BarCodes
Utwórz kod QR za pomocą QRCoder
Poniższy przykładowy kod wygeneruje kod QR przy użyciu biblioteki QrCoder.
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 nie posiada wbudowanej funkcji zapisywania kodu QR jako obrazu. Możemy to jednak zapisać, przekształcając QrCoder w obiekt Bitmap. Następnie możemy zapisać kod QR, korzystając z funkcji zapisywania udostępnianej przez Bitmap.
The generated BarCode from QrCoder
Czas wykonania Qrcoder
QrCoder potrzebuje 592 ms na wygenerowanie i zapisanie kodu QR.
Czas, jaki zajęło QrCoder wygenerowanie nowego BarCODE
Analiza
Czas wykonania przez IronBarcode wynosi 3503 ms, podczas gdy QrCoder potrzebuje tylko 592 ms. To sprawia, że QrCoder jest szybszy niż IronBarcode pod względem wydajności.
Generowanie kodów QR jest znacznie prostsze w IronBarcode, ponieważ wystarczy napisać tylko dwie linijki kodu. Dzięki bibliotece QrCoder wystarczy pięć linii kodu.
IronBarcode oferuje również wbudowaną funkcję zapisywania wygenerowanych kodów QR w pliku, podczas gdy QrCoder takiej funkcji nie posiada. Musimy utworzyć obiekt bitmapowy, aby zapisać kod QR w pliku. Wymaga to utworzenia czterech obiektów w celu wygenerowania kodów QR przy użyciu QrCoder. W IronBarcode wystarczy utworzyć tylko jeden obiekt, aby wykonać tę samą czynność.
Następnie wygenerujemy kody kreskowe przy użyciu obu bibliotek.
Generowanie BarCoda za pomocą IronBarcode
Poniższy kod wygeneruje BARCODE przy użyciu 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
BarCode wygenerowany przy użyciu IronBarcode
Czas wykonania potrzebny do wygenerowania BARCODE przy użyciu IronBarcode jest następujący:
Czas generowania kodów kreskowych przez IronBarcode
Wygenerowanie BARCODE zajmuje 3756 ms lub 3,76 sekundy.
Wygeneruj BARCODE za pomocą QrCoder
Warto zauważyć, że biblioteka QrCoder nie oferuje funkcji tworzenia BarCodes. Dlatego jeśli potrzebujesz tworzyć BARCODES, IronBarcode jest lepszym rozwiązaniem.
Jeśli chodzi o skanowanie kodów QR, zobaczmy, która biblioteka jest najlepszym rozwiązaniem.
Odczytanie kodu QR za pomocą IronBarcode
Poniższy kod odczyta kod QR przy użyciu biblioteki IronBarcode.
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 zwraca Enumerable jako wynik odczytu kodów QR. Musimy przejść przez pętlę Enumerable, aby pobrać każdy wynik. Ta funkcja jest przydatna do odczytu kodów QR z dokumentu lub obrazu zawierającego więcej niż jeden kod QR.
Czas potrzebny IronBarcode na odczytanie/zeskanowanie wszystkich kodów QR z dokumentu
Korzystanie z IronBarcode zajmuje 3136 ms lub 3,1 sekundy.
Odczytaj kod QR za pomocą QrCoder
Biblioteka QrCoder nie zapewnia funkcji odczytu ani skanowania kodów QR.
Odczyt BarCode za pomocą IronBarcode
Poniższy kod skanuje kod kreskowy przy użyciu biblioteki 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 zwraca Enumerable jako wynik odczytu kodów kreskowych. Musimy przejść przez to pętlą, aby uzyskać każdy wynik. Jest to przydatne do odczytu BarCodes z dokumentu lub obrazu, na którym znajduje się więcej niż jeden BarCode.
Wynik wygenerowany przez powyższy kod jest następujący:
Czas potrzebny IronBarcode do zeskanowania kodu kreskowego zawartego w pliku PDF lub obrazie
Odczytanie kodu BarCode za pomocą QrCoder
Biblioteka QrCoder nie zapewnia funkcji odczytu ani skanowania kodów QR.
Omówmy teraz opcje licencji obu bibliotek.
Licencjonowanie
Licencjonowanie IronBarcode
IronBarcode jest bezpłatny do celów programistycznych. Wymaga jednak licencji na wdrożenie poza środowiskiem programistycznym Visual Studio. Ceny licencji wahają się od $liteLicense do $unlimitedLicense (USD). Możesz uzyskać zniżkę, kupując kompletny pakiet Iron Suite.
Check out IronBarcode's [licensing page](/csharp/barcode/licensing/) for more information about available licenses.
Licencjonowanie QrCoder
QrCoder jest oprogramowaniem typu open source, dlatego nie wymaga żadnej licencji. Możesz z niego korzystać w dowolnym Årodowisku. Jeśli interesuje Cię tworzenie oprogramowania open source, możesz również wnieść swój wkład w kod źródłowy.
Kiedy używać QrCoder
Jeśli potrzebujemy jedynie funkcji generowania kodów QR, najlepszym rozwiązaniem jest QRCoder, ponieważ jest on darmowy i nie wymaga żadnych opłat ani abonamentu.
Kiedy używać IronBarcode
IronBarcode to świetna opcja, gdy potrzebujemy funkcji wykraczających poza generowanie kodów QR, takich jak:
- Odczytywanie pojedynczych lub wielu kodów BarCode i kodów QR z obrazów lub plików PDF.
- Korekcja obrazu pod kątem przekrzywienia, orientacji, szumów, niskiej rozdzielczości, kontrastu itp.
- Tworzenie BarCodes i umieszczanie ich na obrazach lub w dokumentach PDF.
- Osadzanie kodów kreskowych w dokumentach HTML.
- Stylizacja BarCode'ów i dodawanie tekstu adnotacji.
- Tworzenie kodów QR z możliwością dodawania logo, kolorów i zaawansowanego wyrównywania kodów QR.
Podsumowanie
Poniższa tabela zawiera porównanie programów IronBarcode i QrCoder.
Porównanie IronBarcode i QrCoder
Wnioski
IronBarcode for .NET pozwala programistom odczytywać i zapisywać kody kreskowe oraz kody QR w swoich aplikacjach .NET za pomocą zaledwie jednej linii kodu. Biblioteka obsługuje większość standardów BARCODE i kodów QR, w tym między innymi 39/93/128, UPC A/E, EAN 8/13 i QR. Biblioteka automatycznie przetwarza obrazy BarCode i oferuje korekcję obrotu, szumów, zniekształceń i przekrzywienia w celu poprawy szybkości i dokładności. IronBarcode jest kompatybilny z systemami 32- i 64-bitowymi, wszystkimi językami .NET oraz różnymi platformami, w tym aplikacjami desktopowymi, konsolowymi, chmurowymi, mobilnymi i internetowymi. Pozwala również programistom na tworzenie kodów kreskowych i kodów QR dla dokumentów PDF, JPG, TIFF, GIF, BMP, PNG i HTML oraz modyfikowanie koloru, rozmiaru, obrotu i jakości tekstu. Biblioteka jest bezpieczna i nie korzysta z usług internetowych ani nie wysyła danych przez Internet. IronBarcode jest dostępny w ramach bezpłatnej wersji próbnej i oferuje trzy opcje licencyjne, w tym wersję Lite do użytku indywidualnego, pakiet Professional dla zespołów liczących do 10 programistów oraz pakiet Unlimited dla firm.
QRCoder to biblioteka C# .NET, która generuje kody QR zgodnie z normą ISO/IEC 18004 bez zależności od innych bibliotek. Oferuje kilka klas renderowania kodów QR, w tym QRCode, ArtQRCode, AsciiQRCode i inne. Jednak nie wszystkie renderery są dostępne we wszystkich docelowych frameworkach, a wersje .NET Standard/.NET >=5.0 mają pewne ograniczenia. QRCoder jest bezpłatny i nie wymaga licencji.
IronBarcode jest bardziej wszechstronny niż QrCoder, ponieważ oferuje obsługę wszystkich wersji .NET Framework, ma szerszy zakres funkcji oraz zapewnia obsługę modelu SaaS i zakresu redystrybucji OEM. IronBarcode zapewnia również obszerną dokumentację i wsparcie techniczne dostępne przez całą dobę, podczas gdy QRCoder tego nie oferuje. IronBarcode wymaga opłaty licencyjnej, ale jest ona rozsądna, biorąc pod uwagę oferowane funkcje i wsparcie.
IronBarcode to biblioteka opracowana przez firmę Iron Software, która oferuje również inne przydatne biblioteki, w tym IronPDF, IronXL, IronOCR i IronWebscraper. Kup kompletny pakiet Iron Suite, aby otrzymać wszystkie pięć produktów z niezwykłą zniżką.
Podsumowując, IronBarcode najlepiej nadaje się dla tych, którzy muszą pracować zarówno z kodami kreskowymi, jak i kodami QR oraz chcą stworzyć generator kodów kreskowych, generator kodów QR, czytnik kodów kreskowych i czytnik kodów QR. Z drugiej strony, QRCoder jest odpowiedni dla tych, którzy potrzebują jedynie generatora kodów QR.
Często Zadawane Pytania
Jak mogę generować kody QR w C#?
Aby generować kody QR w języku C#, można użyć biblioteki QrCoder, która jest prostą biblioteką typu open source. Alternatywnie można użyć biblioteki IronBarcode, aby uzyskać dostęp do bardziej zaawansowanych funkcji, takich jak stylizacja kodów QR i integracja ich z dokumentami.
Jakie są zalety korzystania z IronBarcode w porównaniu z QrCoder?
IronBarcode oferuje szeroki zakres funkcji, takich jak odczytywanie kodów kreskowych i kodów QR, korekcja obrazu oraz osadzanie kodów kreskowych w plikach PDF i innych dokumentach. Jest to idealne rozwiązanie dla projektów wymagających kompleksowej obsługi kodów kreskowych i kodów QR.
Czy istnieje darmowa biblioteka do generowania kodów QR w języku C#?
Tak, QrCoder to bezpłatna biblioteka typu open source do generowania kodów QR w języku C#. Nie wymaga licencji, co czyni ją opłacalnym rozwiązaniem do prostego generowania kodów QR.
Czy mogę odczytywać kody QR za pomocą QrCoder?
Nie, QrCoder nie obsługuje odczytu ani skanowania kodów QR. Do odczytu kodów QR można użyć IronBarcode, który oferuje tę funkcjonalność wraz z dodatkowymi funkcjami.
Jak zainstalować bibliotekę kodów QR w projekcie .NET?
Możesz zainstalować QrCoder za pomocą konsoli NuGet Package Manager Console, używając polecenia Install-Package QRCoder. W przypadku IronBarcode użyj polecenia Install-Package IronBarcode.
Jaka jest różnica w czasie wykonania między IronBarcode a QrCoder w przypadku generowania kodów QR?
QrCoder działa szybciej, generując i zapisując kod QR w około 592 ms, podczas gdy IronBarcode potrzebuje na to około 3503 ms. Jednak IronBarcode oferuje bardziej zaawansowane funkcje, wykraczające poza samo generowanie kodów QR.
Czy IronBarcode wymaga licencji do wdrożenia?
Tak, IronBarcode wymaga licencji do wdrożenia poza środowiskiem programistycznym Visual Studio. Oferuje różne opcje licencyjne, w tym pakiety Lite, Professional i Unlimited.
Jakie funkcje oferuje IronBarcode w zakresie przetwarzania kodów kreskowych?
IronBarcode umożliwia odczyt i zapis zarówno kodów kreskowych, jak i kodów QR, korekcję obrazu, opcje stylizacji oraz możliwość osadzania kodów kreskowych w dokumentach, takich jak pliki PDF, co czyni go kompleksowym narzędziem do przetwarzania kodów kreskowych.
Którą bibliotekę wybrać do prostego generowania kodów QR w języku C#?
Do prostego generowania kodów QR odpowiednim wyborem jest QrCoder ze względu na łatwość obsługi i bezpłatną licencję. Jednak do bardziej zaawansowanych zadań zaleca się IronBarcode.
Czy mogę zintegrować kody QR z plikami PDF przy użyciu języka C#?
Tak, można użyć IronBarcode do integracji kodów QR z plikami PDF. Zapewnia on funkcje odczytu i zapisu kodów QR oraz BarCodes, a także płynnego osadzania ich w dokumentach.

