Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

Wie man Barcodes in ZXing für C#-Entwickler scannt

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 Blick auf Java SE-Anwendungen 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.

Wie man Barcodes in ZXing für C#-Entwickler scannt 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 erforderliche .NET Framework auszuwählen.

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.

Wie man Barcodes in ZXing für C#-Entwickler scannt Abbildung 2

2.1 Installation des ZXing-Barcodes

Geben Sie den folgenden Befehl in die NuGet-Paketmanager-Konsole ein, um die ZXing-Bibliothek zu installieren:

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

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.

Wie man Barcodes in ZXing für C#-Entwickler scannt Abbildung 3

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");
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

Der obige Code legt die Höhe und Breite für die QrCodeEncodingOptions fest. Dann erstellt er eine Instanz von BarcodeWriter. Für den BarcodeWriter setzen wir das Barcode-Format als QR-Code. Wir weisen die zuvor erstellten QR-Code-Optionen dem Writer zu. Die Write-Methode im BarcodeWriter kodiert die übergebene Zeichenfolge in einen Barcode und gibt sie als Bitmap-Bild zurück. Das Bild wird mit der Save-Methode des Bitmaps gespeichert. Unten ist das Ergebnis des Codes.

Wie man Barcodes in ZXing für C#-Entwickler scannt Abbildung 4

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();
}
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

Im obigen Code laden wir zuerst das Bild in ein Bitmap und erstellen dann ein BarcodeReader-Objekt. Die Decode-Funktion ermöglicht es uns, das Bitmap als Parameter zu übergeben, wodurch Ergebnisse in mehreren Formaten zurückgegeben werden können. Wir verwenden die Text-Eigenschaft, um den im Barcode kodierten Text zu erhalten.

Wie man Barcodes in ZXing für C#-Entwickler scannt Abbildung 5

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:

Install-Package BarCode

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.

Wie man Barcodes in ZXing für C#-Entwickler scannt Abbildung 6

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");
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

Dieser Code erzeugt eine 500 x 500 Pixel Grafik mit einem mittleren Fehlerschutzniveau und speichert sie dann an einem Dateispeicherort mit der SaveAsPng-Methode.

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();
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

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 von der 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.

Hinweis:ZXing ist ein eingetragenes Warenzeichen seines jeweiligen Eigentümers. Diese Seite ist nicht mit, von oder gesponsert von ZXing verbunden. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Wie kann ich HTML in PDF in C# konvertieren?

Sie können die RenderHtmlAsPdf-Methode von IronPDF verwenden, um HTML-Strings in PDFs zu konvertieren. Sie können auch HTML-Dateien mit RenderHtmlFileAsPdf in PDFs konvertieren.

Was sind die Unterschiede zwischen IronBarcode und ZXing?

IronBarcode bietet größere Flexibilität und unterstützt ein breiteres Spektrum an Barcode-Formaten im Vergleich zu ZXing. Während ZXing effektiv zur Erstellung von Barcodes ist, ist es in Bezug auf Formatunterstützung und Dokumentation eingeschränkt. IronBarcode zeichnet sich durch Effizienz aus und ist mit verschiedenen Betriebssystemen kompatibel.

Wie scanne ich einen Barcode mit einem mobilen Gerät?

Mit dem ZXing Android-Client Barcode Scanner können Sie die Kamera Ihres Geräts zum Scannen von Barcodes nutzen. Für robustere Funktionen kann IronBarcode in mobile Anwendungen integriert werden, um die Barcode-Scan-Fähigkeiten zu erweitern.

Unterstützt IronBarcode 2D-Barcodes?

Ja, IronBarcode unterstützt sowohl 1D- als auch 2D-Barcodes, einschließlich QR-Codes, und ermöglicht vielseitiges Barcode-Lesen und -Erstellen.

Kann IronBarcode dynamische Barcode-Erstellung handhaben?

IronBarcode unterstützt die dynamische Barcode-Erstellung, sodass Sie Barcodes in Bezug auf Farbe, Größe, Abstand und Beschriftung an spezielle Anforderungen anpassen können.

Was wird benötigt, um IronBarcode in ein .NET-Projekt zu integrieren?

Um IronBarcode in ein .NET-Projekt zu integrieren, installieren Sie das Paket über die NuGet Paketmanager-Konsole mit Install-Package IronBarcode oder finden Sie es im NuGet Paketmanager.

Gibt es Kosten für die Verwendung von IronBarcode?

IronBarcode bietet eine kostenlose Testversion an, aber der Kauf einer Lizenz bietet zusätzliche Funktionen, Produktaktualisierungen und ein Jahr Support.

Kann IronBarcode zum Lesen von Barcodes aus Videobildern verwendet werden?

Ja, IronBarcode kann Echtzeit-Videoframes verarbeiten und Korrekturen für Drehung, Rauschen, Verzerrung und Schiefstellung vornehmen, um die Genauigkeit und Geschwindigkeit beim Barcode-Scannen zu verbessern.

Welche Funktionen bietet ZXing für das Barcode-Scannen?

ZXing bietet ein Open-Source-Toolkit für das Barcode-Scannen, insbesondere für 1D- und 2D-Barcodes. Es umfasst eine Kernbild-Decoding-Bibliothek und einen Android-Client Barcode Scanner.

Welche Programmiersprachen werden von IronBarcode unterstützt?

IronBarcode unterstützt C# und VB.NET, was es ideal für Entwickler macht, die innerhalb des .NET-Frameworks arbeiten.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen