Ein Vergleich zwischen ZXing Decoder & IronBarcode
Barcodes bieten eine klare und maschinenlesbare Möglichkeit, Daten darzustellen. Anfänglich bestanden Barcodes aus parallelen Linien mit unterschiedlichen Breiten und Abständen, die als Darstellung von Daten dienten. Diese traditionellen linearen oder eindimensionalen (1D) Barcodes konnten von spezialisierten optischen Geräten, sogenannten Barcode-Lesern, gescannt werden. Jedoch führte die Entwicklung von Barcodes zur Erfindung zweidimensionaler (2D) Barcodes, auch bekannt als Matrix-Codes. Im Gegensatz zu traditionellen Barcodes nutzen 2D-Barcodes Muster wie Rechtecke, Punkte und Sechsecke anstelle von Strichen. Um diese 2D-Barcodes zu lesen, sind spezielle optische Scanner-Konfigurationen verfügbar, oder alternative Methoden beinhalten die Verwendung einer Digitalkamera, die an einen Computer mit Dekodierungssoftware angeschlossen ist. Darüber hinaus können mobile Geräte wie Smartphones ihre integrierten Kameras und dedizierte Anwendungen nutzen, um als 2D-Barcode-Scanner zu fungieren.
ZXing Barcode Scanner
Zebra Crossing, oft bekannt als ZXing, ist ein Open-Source, multi-format 1D/2D Barcode Bildverarbeitungstoolkit, das in Java entwickelt wurde und Ports für andere Sprachen hat. Die Kern-Image-Dekodierungsbibliothek, der speziell für Java entwickelte Client-Code und der Android-Client Barcode Scanner sind nur einige der Module, die ZXing ausmachen. Viele weitere unabhängige Open-Source-Projekte basieren darauf.
1. Funktionen
- Es kann URLs, Kontaktinformationen, Kalendereinträge und mehr verfolgen.
- Es wurde mit Java SE-Anwendungen im Hinterkopf erstellt.
- Durch Zielvorgabe ist die Integration von Barcode-Scannern möglich.
- Es ist 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 wählen wir die C#-Konsolen-App.

Geben Sie den Projektnamen und den Dateipfad in das entsprechende Textfeld ein. Klicken Sie auf Erstellen, um das ben\u00f6tigte .NET Framework auszuw\u00e4hlen.
Wenn Sie eine Konsolenanwendung ausgewählt haben, erstellt das Projekt jetzt seine Struktur und öffnet die program.cs-Datei, sodass Sie den Code des Programms eingeben und erstellen oder ausführen können.

2.1 Installation des ZXing-Barcodes
Geben Sie den folgenden Befehl in die NuGet-Paketmanager-Konsole ein, um die ZXing-Bibliothek zu installieren:
Alternativ können Sie das Paket mit dem NuGet-Paketmanager-Tool erhalten. Wie in der Abbildung unten gezeigt. Versuchen Sie, das erste Ergebnis zu installieren, das Sie auswählen.

2.2 Barcode mit ZXing lesen und schreiben
Wir können einen Barcode mit folgendem Beispielcode erstellen. ZXing ermöglicht es uns, mehr als 10 Arten von Barcode-Formaten zu 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;
// 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")Der obige Code setzt die Höhe und Breite für das QrCodeEncodingOptions. Dann wird eine Instanz von BarcodeWriter erstellt. Für das BarcodeWriter setzen wir das Barcode-Format auf QR-Code. Wir weisen die zuvor erstellten QR-Code-Optionen dem Writer zu. Die Write-Methode in der BarcodeWriter codiert den gegebenen String in einen Barcode und gibt ihn als Bitmap-Bild zurück. Das Bild wird mit der Save-Methode des Bitmaps gespeichert. Unten ist das Ergebnis aus dem Code.

Das nächste Codebeispiel zeigt die Dekodierung eines Barcodes mit 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();
}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 IfIm obigen Code laden wir zuerst das Bild in ein Bitmap und erstellen dann ein BarcodeReader-Objekt. Die Decode-Funktion erlaubt es uns, das Bitmap als Parameter zu übergeben, was Ergebnisse in mehreren Formaten zurückgeben kann. Wir verwenden die Text-Eigenschaft, um den im Barcode codierten Text zu erhalten.

IronBarcode
Mit Hilfe dieser Barcode-Bibliothek ist das Lesen und Erstellen von Barcodes einfach. Ein dynamischer Barcode ist einfach mit der IronBarcode-Bibliothek zu erstellen. Mit nur wenigen Zeilen Code kann diese einfache Bibliothek einen Barcode generieren, der uns hilft, Barcode-Bilder zu kodieren. IronBarcode ermöglicht es uns, Barcodes in Sprachen wie C# und VB.NET zu generieren.
1. Funktionen
- 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.
- Während des Scannens scannt IronBarcode Echtzeit-Video-Frames und kann Rotationen, Rauschen, Verzerrungen und Schiefstellungen korrigieren. Um die Lesegenauigkeit und Geschwindigkeit zu verbessern, verarbeitet IronBarcode Barcode-Bilder automatisch vor, während sie erstellt werden. Dynamische Barcodes werden häufig verwendet, da sie sich ändernde Inhalte ermöglichen.
- IronBarcode's Fähigkeit, viele Kerne und Threads zu nutzen, ist vorteilhaft für Batch-Processing-Server.
- In ein- und mehrseitigen Dokumenten kann IronBarcode automatisch einen oder mehrere Barcodes finden.
2. Verwendung von IronBarcode
Um die IronBarcode-Bibliothek in der Lösung zu nutzen, müssen Sie das erforderliche Paket herunterladen. Verwenden Sie hierzu den folgenden Befehl in der NuGet-Paketmanager-Konsole:
Alternativ können Sie den NuGet-Paketmanager verwenden, der alle Suchergebnisse anzeigt, um das "Barcode"-Paket zu suchen und herunterzuladen. Anschließend können Sie das wesentliche Paket auswählen, das Sie in das Programm herunterladen möchten.

3. Barcodes lesen und schreiben mit IronBarcode
Mit nur wenigen Zeilen Code können wir mithilfe der IronBarcode-Bibliothek schnell Barcodes erstellen. Zusätzlich ermöglicht es uns, den erstellten Barcode als separate Bilddatei zu speichern. Hier ist etwas Beispiel-C#-Code zum Erstellen eines Barcode-Etiketts mit einem Konsolenprogramm.
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")Dieser Code erzeugt eine Grafik mit 500 mal 500 Pixeln unter Verwendung eines mittleren Fehlerschutzniveaus und speichert sie dann mit der SaveAsPng-Methode an einem Dateispeicherort.
Das nächste Codebeispiel liest den im vorherigen Beispiel erstellten QR-Code.
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()Wir laden zuerst das Bild in ein Bitmap und lesen dann das Bild mit der Read-Methode der BarcodeReader-Klasse. Wir verwenden die Values-Eigenschaft des vom Read-Methode zurückgegebenen BarcodeResults-Objekts, um den Inhalt zu erhalten, der aus dem QR-Code gelesen wurde.
Um mehr über ZXing zu erfahren und wie es sich im Vergleich zu IronBarcode verhält, lesen Sie diesen nächsten Blogbeitrag.
Unser Lesen von Barcodes-Tutorial bietet ebenfalls weitere Informationen darüber, wie Sie IronBarcode verwenden können, um Barcodes und QR-Codes zu lesen. Für weitere Code-Tutorials zu IronBarcode.
Abschluss
Der ZXing-Barcode-Scanner kann qualitativ hochwertige Barcodes erstellen, ist jedoch veraltet und unterstützt nur wenige Barcode-Formate. Er hat auch eingeschränkte Dokumentation und Produktunterstützung.
Andererseits ist IronBarcode sehr effizient und flexibel und funktioniert auf vielen Betriebssystemen. IronBarcode kann die Farben, Größen, Abstände und Beschriftungen von Barcodes ändern. Es unterstützt auch Crystal Reports.
Entwickler können IronBarcode kostenlos verwenden. Benutzer können eine Lizenz erwerben, um auf zusätzliche Funktionen zuzugreifen und ein volles Jahr Unterstützung und Produktaktualisierungen zu erhalten.

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.