Porównanie IronBarcode i Aspose.Barcode
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# umożliwiająca tworzenie kodów 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:
Spowoduje to zainstalowanie biblioteki IronBarcode w naszym projekcie.

Instalacja IronBarcode
Zainstaluj QrCoder
Wpisz następujące polecenie w konsoli menedżera pakietów:
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\QrCodeBy IronBarcode.png");
// Stop the stopwatch and output the execution time
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
}
}
Instancja Stopwatch zostaje utworzona w celu mierzenia czasu wykonania programu, aby analizować 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
Stwórz kod QR z 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");
}
}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 ClassQrCoder 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\BarcodeBy IronBarcode.png");
}
}

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\QrcodeBy IronBarcode.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);
}
}
}
}
IronBarcode zwraca Enumerable jako wynik odczytu kodów QR. Musimy przejść przez 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\BarcodeBy IronBarcode.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);
}
}
}
}
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.
Teraz porozmawiajmy o opcjach licencji obu bibliotek.
Licencjonowanie
Licencjonowanie IronBarcode
IronBarcode jest bezpłatny do celów programistycznych. Jednak wymaga licencji do wdrożenia poza środowiskiem Visual Studio. Ceny licencji wahają się od $999 do $4,799 (USD). Możesz uzyskać zniżkę, kupując kompletny pakiet Iron Suite.

Check out IronBarcode's licensing page 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 tylko funkcji generowania kodów QR, QrCoder jest najlepszą opcją, ponieważ jest darmowy i nie wymaga żadnych opłat ani subskrypcji.
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 generująca kody QR na podstawie 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 darmowy i nie wymaga licencjonowania.
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 oferuje również pełną dokumentację i wsparcie 24/7, 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 stworzyć generator kodu QR.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.