VERGLEICH MIT ANDEREN KOMPONENTEN

Scannen von Barcodes in ZXing für C#-Entwickler

Veröffentlicht 21. Juni 2023
Teilen Sie:

Einführung

Barcodes bieten eine klare und maschinenlesbare Möglichkeit zur Darstellung von Daten. Ursprünglich bestanden Strichcodes aus parallelen Linien mit unterschiedlichen Breiten und Abständen, die zur Darstellung von Daten dienten. Diese traditionellen linearen oder eindimensionalen (1D) barcodes können mit speziellen optischen Geräten, so genannten Barcode-Lesegeräten, gescannt werden. Die Entwicklung der Strichcodes führte jedoch zur Erfindung der zweidimensionalen (2D) barcodes, auch bekannt als Matrixcodes. Im Gegensatz zu herkömmlichen Strichcodes werden bei 2D-Strichcodes Muster wie Rechtecke, Punkte und Sechsecke anstelle von Strichen verwendet. Um diese 2D-Barcodes zu lesen, gibt es spezielle optische Scanner oder alternative Methoden, bei denen eine Digitalkamera an einen Computer angeschlossen wird, auf dem eine Decodierungssoftware läuft. Außerdem können mobile Geräte wie Smartphones mit ihren integrierten Kameras und speziellen Anwendungen als 2D-Barcodescanner eingesetzt werden.

ZXing Barcode-Scanner

Zebra Crossing, oft auch als ZXing bezeichnet, ist ein Open-Source-Toolkit für die Verarbeitung von 1D/2D-Barcode-Bildern in mehreren Formaten, das in Java entwickelt wurde und über Portierungen für andere Sprachen verfügt. Die Kernbibliothek zur Bilddecodierung, der Java-spezifische Client-Code und der Android-Client Barcode-Scanner sind nur einige der Module, aus denen ZXing besteht. Zahlreiche weitere unabhängige Open-Source-Projekte bauen darauf auf.

1. Eigenschaften

  • Es kann URLs, Kontaktinformationen, Kalenderereignisse und vieles mehr speichern.
  • Es wurde mit Blick auf Java SE-Anwendungen entwickelt.
  • Durch den Zweck ist die Integration von Barcode-Scannern möglich.
  • Es handelt sich um eine einfache Google Glass-Anwendung.

2. Verwendung von ZXing mit .NET

Öffnen Sie Visual Studio, wählen Sie "Neues Projekt" aus dem Dateimenü und dann "Konsolenanwendung". In diesem Artikel entscheiden wir uns für die C#-Konsolenanwendung.

Scannen von Barcodes in ZXing für C#-Entwickler Abbildung 1

Geben Sie den Projektnamen und den Dateipfad in das entsprechende Textfeld ein. Klicken Sie anschließend auf die Schaltfläche Erstellen, um das gewünschte .NET-Framework auszuwählen.

Wenn Sie eine Konsolenanwendung ausgewählt haben, wird das Projekt nun seine Struktur erstellen und die Datei program.cs öffnen, so dass Sie den Programmcode eingeben und das Programm erstellen oder ausführen können.

Scannen von Barcodes in ZXing für C#-Entwickler Abbildung 2

2.1 ZXing Barcode installieren

Geben Sie den folgenden Befehl in die NuGet-Paketmanager-Konsole ein.

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

Alternativ können wir das Element auch mit dem NuGet-Paketmanager-Tool beziehen. Wie in der Abbildung unten. Versuchen Sie, das erste Ergebnis, das Sie auswählen, zu installieren.

Scannen von Barcodes in ZXing für C#-Entwickler Abbildung 3

2.2 Barcode lesen und schreiben mit ZXing

Mit dem unten stehenden Beispielcode können wir einen Barcode erstellen. Mit ZXing können wir mehr als 10 Arten von Barcode-Formaten erstellen.

using ZXing.Windows.Compatibility;

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

var writer = new BarcodeWriter();
writer.Format= BarcodeFormat.QR_CODE;
writer.Options = options;
System.Drawing.Bitmap _bitmap=writer.Write("Hello world");
_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;
System.Drawing.Bitmap _bitmap=writer.Write("Hello world");
_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
Dim _bitmap As System.Drawing.Bitmap=writer.Write("Hello world")
_bitmap.Save("Demo1.png")
VB   C#

Oben setzen wir die Höhe und Breite für die QrCodeEncodingOptions. Dann erstellen wir ein Objekt für BarcodeWriter. Für den "BarcodeWriter" stellen wir das Barcode-Format QR_Code ein. Dann weisen wir die Option "qrcode" zu, die wir zuvor erstellt haben. Die Schreibfunktion im BarcodeWriter kodiert die angegebene Zeichenkette in einen Barcode und gibt den Barcode als Bitmap-Bild zurück. Dann können wir das Bild mit Hilfe der Speicherfunktion in der Bitmap speichern. Nachfolgend sehen Sie das Ergebnis des Codes.

Scannen von Barcodes in ZXing für C#-Entwickler Abbildung 4


using ZXing.Windows.Compatibility;
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader = new BarcodeReader();
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
    Console.WriteLine(result.Text);
    Console.ReadKey();
}

using ZXing.Windows.Compatibility;
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader = new BarcodeReader();
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
Imports ZXing.Windows.Compatibility
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
Private reader = New BarcodeReader()
Private result = reader.Decode(barcodeBitmap)
If result IsNot Nothing Then
	Console.WriteLine(result.Text)
	Console.ReadKey()
End If
VB   C#

Im obigen Code laden wir zunächst das Bild in eine Bitmap. Dann erstellen wir ein "BarcodeReader"-Objekt. Mit der Funktion "Decode" können wir eine Bitmap als Parameter übergeben, die das Ergebnis in mehreren Typen zurückgeben kann. Als nächstes verwenden wir die Eigenschaft "Text", um den im Strichcode kodierten Text zu erhalten.

Scannen von Barcodes in ZXing für C#-Entwickler Abbildung 5

IronBarcode

Mit Hilfe dieser Barcode-Bibliothek ist das Lesen und Erstellen von Barcodes ein Kinderspiel. Ein dynamischer Barcode ist mit IronBarcode's Library einfach zu erstellen. Mit nur ein paar Zeilen Code kann diese einfache Bibliothek einen Barcode erzeugen, der uns hilft, Barcode-Bilder zu kodieren. IronBarcode ermöglicht es uns, Barcodes in Sprachen wie C# und VB.NET zu erzeugen.

1. Eigenschaften

  • IronBarcode kann die meisten Barcode-Bildformate und QR-Standards lesen und schreiben, einschließlich UPC A/E, Databar, EAN 8/13, MSI, Code 39/93/128, CodaB, RSS 14/Expanded und ITF.
  • Beim Scannen von Scans und Echtzeit-Videobildern kann IronBarcode Rotation, Rauschen, Verzerrung und Schräglage korrigieren. Um die Lesegenauigkeit und -geschwindigkeit zu verbessern, verarbeitet IronBarcode die Barcode-Bilder automatisch vor, während sie erstellt werden. Dynamische Barcodes werden häufig verwendet, da sie wechselnde Inhalte zulassen.
  • Die Fähigkeit von IronBarcode, viele Kerne und Threads zu nutzen, ist für stapelverarbeitende Server von Vorteil.
  • In ein- und mehrseitigen Dokumenten kann IronBarcode automatisch einen oder mehrere Barcodes finden.

2. IronBarcode verwenden

Um die IronBarcode-Bibliothek in der Lösung zu verwenden, müssen Sie das erforderliche Paket herunterladen. Verwenden Sie dazu den Code des Paketmanagers, der im Folgenden beschrieben wird:

:PackageInstall

Alternativ können Sie auch den NuGet Package Manager verwenden, der alle Suchergebnisse anzeigt, um das "Barcode"-Paket zu suchen und herunterzuladen. Dann können Sie das erforderliche Paket auswählen, um es in das Programm herunterzuladen.

Scannen von Barcodes in ZXing für C#-Entwickler Abbildung 6

3. Lesen und Schreiben von Barcodes mit IronBarcode

Mit nur ein paar Zeilen Code können wir mit der IronBarcode-Bibliothek schnell Barcode-Bilder erstellen. Außerdem ermöglicht es uns, den erstellten Barcode als separate Bilddatei zu speichern. Hier ist ein Beispiel für Visual Basic Code zur Erstellung eines Barcode-Etiketts mit einem Konsolenprogramm.

using IronBarCode;
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png");
using IronBarCode;
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png");
Imports IronBarCode
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png")
VB   C#

Eine 500 x 500 Pixel große Grafik wird mit einer mittleren Fehlerkorrektur erstellt und anschließend mit der Methode "SaveAsPng" in einer Datei gespeichert.

Das nächste Code-Beispiel liest den Text, der im QR-Code kodiert ist, den wir im vorherigen Beispiel erstellt haben.

var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader=IronBarCode.BarcodeReader.Read(barcodeBitmap);
Console.WriteLine(reader.Values()[0]);
Console.ReadKey();
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader=IronBarCode.BarcodeReader.Read(barcodeBitmap);
Console.WriteLine(reader.Values()[0]);
Console.ReadKey();
Dim barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
Dim reader=IronBarCode.BarcodeReader.Read(barcodeBitmap)
Console.WriteLine(reader.Values()(0))
Console.ReadKey()
VB   C#

Zuerst laden wir das Bild in eine Bitmap und lesen es dann mit der Methode "Read" der Klasse "BarcodeReader". Wir verwenden die Eigenschaft "Values" des Objekts "BarcodeResults", das von der Methode "Read" zurückgegeben wird, um den Inhalt zu erhalten, der aus dem QR-Code gelesen wurde.

Wenn Sie mehr über ZXing und den Vergleich mit IronBarcode erfahren möchten, lesen Sie dies nächster Blogeintrag.

Unser Lesen von Barcodes das Tutorial bietet außerdem weitere Informationen darüber, wie IronBarcode zum Lesen von Barcodes und QR-Codes verwendet werden kann. Für weitere Code-Tutorials auf IronBarcode.

Schlussfolgerung

Der ZXing-Barcodescanner kann qualitativ hochwertige Barcodes erstellen, ist aber veraltet und unterstützt nur wenige Barcodeformate. Außerdem gibt es nur eine begrenzte Dokumentation und Produktunterstützung.

Andererseits ist IronBarcode sehr effizient und flexibel und kann auf vielen Betriebssystemen eingesetzt werden. IronBarcode kann die Farbe, die Größe, die Abstände und die Beschriftung von Strichcodes ändern. Es unterstützt auch Crystal Reports.

Entwickler können ironBarcode verwenden umsonst. Die Nutzer können eine lizenz um auf zusätzliche Funktionen zuzugreifen und ein ganzes Jahr lang Support und Produkt-Updates zu erhalten.

NÄCHSTES >
ZXing.org QR-Code-Bibliothek und IronBarcode: Ein umfassender Vergleich

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 1,246,703 Lizenzen anzeigen >