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

Jak skanować kody kreskowe w ZXing dla deweloperów C#

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ć BarCodes 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ć wymagańy .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ć BarCodes 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ć BarCodes 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. W przypadku BarcodeWriter formatu BARCODE ustawiono jako kod QR. Przekazujemy autorowi wcześniej utworzone opcje kodów QR. Metoda Write w BarcodeWriter koduje podany ciąg znaków w BARCODE i zwraca go jako obraz bitmapowy. Obraz jest zapisywany przy użyciu metody Save bitmapy. Poniżej znajduje się wynik działania kodu.

Jak skanować BarCodes 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 mapy bitowej, a następnie tworzymy obiekt BarcodeReader. Funkcja Decode pozwala nam przekazać mapę bitową jako parametr, co może zwrócić wyniki w wielu formatach. Używamy właściwości Text, aby uzyskać tekst zakodowany w BARCODE.

Jak skanować BarCodes 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ć wymagańy 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ć BarCodes 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 generuje grafikę o wymiarach 500 na 500 pikseli przy użyciu średniego poziomu korekcji błędów, a następnie zapisuje ją w 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 pliku bitmapowego, a następnie odczytujemy go za pomocą metody Read w klasie BarcodeReader. Używamy właściwości Values obiektu BarcodeResults zwróconego przez metodę Read, aby uzyskać treść 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.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie