Przejdź do treści stopki
PORóWNAJ Z INNYMI KOMPONENTAMI

Porównanie dekodera ZXing i IronBarcode

BarCODE zapewniają przejrzysty i czytelny dla maszyn sposób prezentacji danych. Początkowo BarCodes składały się z równoległych linii o różnej szerokości i odstępach, służących jako reprezentacja danych. Te tradycyjne liniowe lub jednowymiarowe (1D) BARCODE-y mogą być skanowane przez specjalistyczne urządzenia optyczne zwane czytnikami BARCODE-ów. Jednak ewolucja kodów kreskowych doprowadziła do wynalezienia kodów kreskowych dwuwymiarowych (2D), znanych również jako kody matrycowe. W przeciwieństwie do tradycyjnych BARCODE-ów, BARCODE-y 2D wykorzystują wzory, takie jak prostokąty, kropki i sześciokąty zamiast kresek. Do odczytu tych BARCODE'ów 2D dostępne są specjalne skanery optyczne lub alternatywne metody polegające na użyciu aparatu cyfrowego podłączonego do komputera z oprogramowaniem do dekodowania. Ponadto urządzenia mobilne, takie jak smartfony, mogą wykorzystywać wbudowane aparaty fotograficzne i dedykowane aplikacje do pełnienia funkcji skanera BARCODE 2D.

Skaner BarCode ZXing

Zebra Crossing, często nazywany ZXing, to otwarty, wieloformatowy zestaw narzędzi do przetwarzania obrazów kodów kreskowych 1D/2D, który został opracowany w języku Java i posiada porty dla innych języków. Podstawowa biblioteka dekodująca obrazy, kod kliencki specyficzny dla Javy oraz klient BarCode Scanner dla systemu Android to tylko niektóre z modułów tworzących ZXing. Na tej platformie opiera się wiele innych niezależnych projektów open source.

1. Funkcje

  • Może śledzić adresy URL, dane kontaktowe, wydarzenia kalendarzowe i nie tylko.
  • Została stworzona z myślą o aplikacjach Java SE.
  • Dzięki tej funkcji możliwa jest integracja skanera BARCODE.
  • Jest to prosta aplikacja na Google Glass.

2. Korzystanie z ZXing w środowisku .NET

Otwórz program Visual Studio, wybierz "nowy projekt" z menu Plik, a następnie "aplikacja konsolowa". W tym artykułe wybieramy aplikację konsolową C#.

Jak skanować kody kreskowe w ZXing dla programistów C# Rysunek 1

Wprowadź nazwę projektu i ścieżkę do pliku w odpowiednim polu tekstowym. Następnie kliknij przycisk Utwórz, aby wybrać wymagany .NET Framework.

Jeśli wybrałeś aplikację konsolową, projekt utworzy teraz swoją strukturę i otworzy plik program.cs, umożliwiając wprowadzenie kodu programu oraz jego kompilację lub uruchomienie.

Jak skanować kody kreskowe w ZXing dla programistów C# Rysunek 2

2.1 Zainstaluj ZXing BarCode

Wpisz następujące polecenie w konsoli menedżera pakietów NuGet, aby zainstalować bibliotekę ZXing:

Install-Package ZXing.Net.Bindings.Windows.Compatibility

Alternatywnie można pobrać pakiet za pomocą narzędzia do zarządzania pakietami NuGet. Podobnie jak na poniższej ilustracji. Spróbuj zainstalować pierwszy wybrany wynik.

Jak skanować kody kreskowe w ZXing dla programistów C# Rysunek 3

2.2 Odczytywanie i zapisywanie BARCODE za pomocą ZXing

Możemy utworzyć BARCODE, korzystając z poniższego przykładowego kodu. ZXing pozwala nam tworzyć ponad 10 rodzajów formatów kodów kreskowych.

using ZXing.Windows.Compatibility;

var options = new QrCodeEncodingOptions
{
    Width = 250,
    Height = 250,
};

var writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;

// Encode the string into a QR code bitmap image
System.Drawing.Bitmap _bitmap = writer.Write("Hello world");

// Save the bitmap as a PNG file
_bitmap.Save("Demo1.png");
using ZXing.Windows.Compatibility;

var options = new QrCodeEncodingOptions
{
    Width = 250,
    Height = 250,
};

var writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;

// Encode the string into a QR code bitmap image
System.Drawing.Bitmap _bitmap = writer.Write("Hello world");

// Save the bitmap as a PNG file
_bitmap.Save("Demo1.png");
Imports ZXing.Windows.Compatibility

Private options = New QrCodeEncodingOptions With {
	.Width = 250,
	.Height = 250
}

Private writer = New BarcodeWriter()
writer.Format = BarcodeFormat.QR_CODE
writer.Options = options

' Encode the string into a QR code bitmap image
Dim _bitmap As System.Drawing.Bitmap = writer.Write("Hello world")

' Save the bitmap as a PNG file
_bitmap.Save("Demo1.png")
$vbLabelText   $csharpLabel

Powyższy kod ustawia wysokość i szerokość dla QrCodeEncodingOptions. Następnie tworzy instancję BarcodeWriter. Dla BarcodeWriter ustawiamy format kodu kreskowego jako kod QR. Przekazujemy autorowi wcześniej utworzone opcje kodów QR. Metoda Write w BarcodeWriter koduje podany ciąg znaków w kod kreskowy i zwraca go jako obraz bitmapowy. Obraz jest zapisywany przy użyciu metody Save bitmapy. Poniżej znajduje się wynik z kodu.

Jak skanować kody kreskowe w ZXing dla programistów C# Rysunek 4

Poniższy przykład kodu pokazuje dekodowanie BarCoda przy użyciu ZXing.

using ZXing.Windows.Compatibility;

// Load the barcode image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");

// Create a BarcodeReader object
var reader = new BarcodeReader();

// Decode the bitmap into a result
var result = reader.Decode(barcodeBitmap);

if (result != null)
{
    // Output the decoded text to the console
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
using ZXing.Windows.Compatibility;

// Load the barcode image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");

// Create a BarcodeReader object
var reader = new BarcodeReader();

// Decode the bitmap into a result
var result = reader.Decode(barcodeBitmap);

if (result != null)
{
    // Output the decoded text to the console
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
Imports ZXing.Windows.Compatibility

' Load the barcode image into a bitmap
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)

' Create a BarcodeReader object
Private reader = New BarcodeReader()

' Decode the bitmap into a result
Private result = reader.Decode(barcodeBitmap)

If result IsNot Nothing Then
	' Output the decoded text to the console
	Console.WriteLine(result.Text)
	Console.ReadKey()
End If
$vbLabelText   $csharpLabel

W powyższym kodzie najpierw ładujemy obraz do bitmapy, a następnie tworzymy obiekt BarcodeReader. Funkcja Decode pozwala nam przekazać bitmapę jako parametr, który może zwracać wyniki w różnych formatach. Używamy właściwości Text, aby uzyskać tekst zakodowany w kodzie kreskowym.

Jak skanować kody kreskowe w ZXing dla programistów C# Rysunek 5

IronBarcode

Dzięki tej bibliotece BarCode odczytywanie i tworzenie BarCode jest proste. Dynamiczny BARCODE można łatwo utworzyć za pomocą biblioteki IronBarcode. Za pomocą zaledwie kilku linii kodu ta prosta biblioteka może wygenerować BARCODE, co pomaga nam w kodowaniu obrazów BARCODE. IronBarcode umożliwia generowanie kodów kreskowych w językach takich jak C# i VB.NET.

1. Funkcje

  • IronBarcode potrafi odczytywać i zapisywać większość formatów obrazów kodów kreskowych oraz standardów QR, w tym UPC A/E, Databar, EAN 8/13, MSI, Code 39/93/128, CodaB, RSS 14/Expanded oraz ITF.
  • Podczas skanowania obrazów i klatek wideo w czasie rzeczywistym IronBarcode może korygować obrót, szumy, zniekształcenia i przekrzywienie. Aby poprawić dokładność i szybkość odczytu, IronBarcode automatycznie przetwarza obrazy kodów kreskowych w trakcie ich tworzenia. Często stosuje się barcody dynamiczne, ponieważ umożliwiają one zmianę treści.
  • Zdolność IronBarcode do wykorzystania wielu rdzeni i wątków jest korzystna dla serwerów przetwarzających dane w trybie wsadowym.
  • W dokumentach jedno- i wielostronicowych IronBarcode może automatycznie znaleźć jeden lub więcej BarCodes.

2. Korzystanie z IronBarcode

Aby wykorzystać bibliotekę IronBarcode w rozwiązaniu, należy pobrać wymagany pakiet. Aby to zrobić, użyj następującego polecenia w konsoli menedżera pakietów NuGet:

Install-Package BarCode

Alternatywnie można skorzystać z menedżera pakietów NuGet, który wyświetli wszystkie wyniki wyszukiwania, aby znaleźć i pobrać pakiet "BarCode". Następnie można wybrać niezbędny pakiet do pobrania do programu.

Jak skanować kody kreskowe w ZXing dla programistów C# Rysunek 6

3. Odczytywanie i zapisywanie BarCodes za pomocą IronBarcode

Wystarczy kilka wierszy kodu, aby szybko utworzyć obrazy kodów kreskowych przy użyciu biblioteki IronBarcode. Dodatkowo umożliwia nam to zapisanie utworzonego kodu BarCode jako oddzielnego pliku graficznego. Oto przykładowy kod w języku C# służący do tworzenia etykiety z kodem BarCode za pomocą programu konsolowego.

using IronBarCode;

// Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png");
using IronBarCode;

// Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png");
Imports IronBarCode

' Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png")
$vbLabelText   $csharpLabel

Ten kod tworzy grafikę o rozmiarze 500 na 500 pikseli, używając średniej korekcji błędów, a następnie zapisuje ją do lokalizacji pliku przy użyciu metody SaveAsPng.

Poniższy przykład kodu odczytuje tekst zakodowany w kodzie QR, który utworzyliśmy w poprzednim przykładzie.

using IronBarCode;

// Load the QR code image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");

// Read the barcode image
var reader = IronBarCode.BarcodeReader.Read(barcodeBitmap);

// Output the decoded value to the console
Console.WriteLine(reader.Values[0]);
Console.ReadKey();
using IronBarCode;

// Load the QR code image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");

// Read the barcode image
var reader = IronBarCode.BarcodeReader.Read(barcodeBitmap);

// Output the decoded value to the console
Console.WriteLine(reader.Values[0]);
Console.ReadKey();
Imports IronBarCode

' Load the QR code image into a bitmap
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)

' Read the barcode image
Private reader = IronBarCode.BarcodeReader.Read(barcodeBitmap)

' Output the decoded value to the console
Console.WriteLine(reader.Values(0))
Console.ReadKey()
$vbLabelText   $csharpLabel

Najpierw ładujemy obraz do bitmapy, a następnie odczytujemy obraz przy użyciu metody Read klasy BarcodeReader. Używamy właściwości Values na obiekcie BarcodeResults zwróconym z metody Read, aby uzyskać zawartość odczytaną z kodu QR.

Aby dowiedzieć się więcej o ZXing i porównać go z IronBarcode, przeczytaj następny wpis na blogu.

Nasz samouczek dotyczący odczytu kodów kreskowych zawiera również więcej informacji na temat korzystania z IronBarcode do odczytu kodów kreskowych i kodów QR. Więcej samouczków dotyczących kodowania w IronBarcode.

Wnioski

Skaner kodów kreskowych ZXing pozwala tworzyć kody kreskowe wysokiej jakości, ale jest przestarzały i obsługuje niewiele formatów kodów kreskowych. Posiada również ograniczoną dokumentację i wsparcie techniczne.

Z drugiej strony IronBarcode jest bardzo wydajny i elastyczny oraz może działać na wielu systemach operacyjnych. IronBarcode umożliwia zmianę koloru, rozmiaru, odstępów i czcionki używanej w barcode'ach. Obsługuje również Crystal Reports.

Programiści mogą korzystać z IronBarcode za darmo. Użytkownicy mogą nabyć licencję, aby uzyskać dostęp do dodatkowych funkcji oraz otrzymać roczną pomoc techniczną i aktualizacje produktu.

Zwróć uwagęZXing jest zastrzeżonym znakiem towarowym odpowiedniego właściciela. Ta strona nie jest powiązana z firmą ZXing, nie jest przez nią promowana ani sponsorowana. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.

Często Zadawane Pytania

Jak mogę przekonwertować HTML na PDF w języku C#?

Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Możesz również konwertować pliki HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.

Jakie są różnice między IronBarcode a ZXing?

IronBarcode oferuje większą elastyczność i obsługuje szerszy zakres formatów kodów kreskowych w porównaniu z ZXing. Chociaż ZXing jest skuteczny w tworzeniu kodów kreskowych, ma ograniczoną obsługę formatów i dokumentację. IronBarcode wyróżnia się wydajnością i jest kompatybilny z różnymi systemami operacyjnymi.

Jak zeskanować BarCode za pomocą urządzenia mobilnego?

Dzięki aplikacji ZXing BarCode Scanner na Androida możesz wykorzystać aparat swojego urządzenia do skanowania kodów kreskowych. Aby uzyskać bardziej zaawansowane funkcje, IronBarcode można zintegrować z aplikacjami mobilnymi w celu rozszerzenia możliwości skanowania kodów kreskowych.

Czy IronBarcode obsługuje kody kreskowe 2D?

Tak, IronBarcode obsługuje zarówno kody kreskowe 1D, jak i 2D, w tym kody QR, co pozwala na wszechstronne odczytywanie i tworzenie kodów kreskowych.

Czy IronBarcode obsługuje dynamiczne tworzenie kodów kreskowych?

IronBarcode obsługuje dynamiczne tworzenie BARCODE-ów, umożliwiając dostosowanie ich koloru, rozmiaru, odstępów i czcionki do konkretnych wymagań.

Co jest potrzebne do zintegrowania IronBarcode z projektem .NET?

Aby zintegrować IronBarcode z projektem .NET, zainstaluj pakiet za pomocą konsoli NuGet Package Manager Console, używając polecenia Install-Package IronBarcode, lub znajdź go w menedżerze pakietów NuGet.

Czy korzystanie z IronBarcode wiąże się z jakimikolwiek kosztami?

IronBarcode oferuje bezpłatną wersję próbną, ale zakup licencji zapewnia dodatkowe funkcje, aktualizacje produktu oraz roczną pomoc techniczną.

Czy IronBarcode może służyć do odczytywania kodów kreskowych z klatek wideo?

Tak, IronBarcode może przetwarzać klatki wideo w czasie rzeczywistym, korygując obrót, szumy, zniekształcenia i przekrzywienie w celu zwiększenia dokładności i szybkości skanowania kodów kreskowych.

Jakie są funkcje ZXing do skanowania kodów kreskowych?

ZXing udostępnia zestaw narzędzi typu open source do skanowania kodów kreskowych, w szczególności kodów 1D i 2D. Zawiera on podstawową bibliotekę do dekodowania obrazów oraz klienta Barcode Scanner dla systemu Android.

Jakie języki programowania obsługuje IronBarcode?

IronBarcode obsługuje języki C# i VB.NET, dzięki czemu idealnie nadaje się dla programistów pracujących w środowisku .NET Framework.

Curtis Chau
Autor tekstów technicznych

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ę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie