HOWTO · Csharp
Barcode in C# lesen
In diesem Artikel wird kurz erläutert, wie Sie Barcode-Daten aus einer Bilddatei mit C# lesen.
Auf dieser Seite
Dieses Tutorial erklärt, wie Sie Barcode-Daten aus einer Bilddatei in C# lesen. Es enthält ein vollständiges Programm, das ein Drittanbieterpaket verwendet, um einen oder mehrere Barcodes zu finden und deren Symbologie sowie decodierten Text auszugeben. Der gezeigte Ablauf liest eine lokale Bilddatei; wenn Ihr Barcode aus einer anderen Quelle stammt, müssen Sie den Eingabeschritt separat anpassen.
Barcode in C# lesen
Sie können Barcode-Bilder in C# mit dem Assembly-Paket Aspose.BarCode lesen. Erstellen Sie ein Konsolenprojekt in Visual Studio, installieren Sie das Paket von NuGet.org und legen Sie barcode.png im Projektverzeichnis ab, damit das Beispiel die Datei anhand ihres Namens öffnen kann. Das Paket stellt die Erkennungs-API bereit; das Bild bleibt die Eingabe Ihrer Anwendung.
Die Erkennungs-API befindet sich im Namespace Aspose.BarCode.BarCodeRecognition. Erstellen Sie einen BarCodeReader, rufen Sie seine Methode ReadBarCodes() auf und untersuchen Sie jedes zurückgegebene BarCodeResult. Jedes Ergebnis stellt CodeType für die Symbologie und CodeText für den decodierten Wert bereit, sodass dieselbe Schleife mehrere Barcodes in einem Bild verarbeiten kann.
Das folgende Beispiel verwendet den Konstruktor, der einen Dateinamen erwartet. Dadurch bleiben Eingabe und Ausgabe nachvollziehbar, während der Reader nach der Verwendung freigegeben wird. Dieses von einer Bibliothek abhängige Beispiel wird hier nicht als ausgeführter Nachweis präsentiert: Installieren Sie das Paket und stellen Sie barcode.png bereit, bevor Sie es ausführen. Wenn die Datei nicht geöffnet oder von der Bibliothek nicht decodiert werden kann, schreibt der try/catch-Block die Meldung der Bibliothek aus, statt ohne Kontext zu enden.
-
Erstellen Sie eine C#-Konsolenanwendung in Visual Studio.
-
Wechseln Sie zur Registerkarte
"Project"und wählen Sie"Manage NuGet Packages"aus.
-
Suchen Sie auf NuGet.org nach dem Paket
Aspose.BarCodeund installieren Sie es.
Nun können Sie den Namespace
Aspose.BarCode.BarCodeRecognitionin Ihren Code importieren, um die Barcode-Erkennungsfunktionen zu verwenden. -
Kopieren Sie das folgende Code-Snippet in Ihre Datei
program.cs.using System; using Aspose.BarCode; using Aspose.BarCode.BarCodeRecognition; namespace BarcodeScanner { class Program { static void Main(string[] args) { try { // The file is in the project directory. using (BarCodeReader barCodeReader = new BarCodeReader("barcode.png")) { foreach (BarCodeResult output in barCodeReader.ReadBarCodes()) { // Read the barcode Console.WriteLine("Symbology Type: " + output.CodeType); Console.WriteLine("CodeText: " + output.CodeText); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }Dieser Code liest
barcode.pngaus dem Projektverzeichnis. Dieforeach-Schleife verarbeitet jedesBarCodeResult, das für das Bild zurückgegeben wird. Für jedes Ergebnis gibt sie die Symbologie ausCodeTypeund den decodierten Wert ausCodeTextaus. Dertry/catch-Block verhindert, dass ein Eingabe- oder Bibliotheksfehler das Beispiel ohne Meldung beendet.Die Klasse
BarCodeReaderverfügt über überladene Konstruktoren. Dieses Beispiel verwendet bewusst den Konstruktor, der einen Dateinamen entgegennimmt. Andere Eingabeformen hängen von der Bibliotheksversion ab und liegen außerhalb des gezeigten Ablaufs; daher stellt dieser Artikel sie nicht als austauschbaren Code dar.
Das folgende Bild ist die Eingabe, die für die Illustration des Artikels verwendet wird.
Der Reader gibt die decodierten Werte in der Anwendungsausgabe aus. Der bereitgestellte Screenshot zeigt das Ergebnis für diese Eingabe.
Zur schnellen Veranschaulichung der Ausgabeform verwendet dieses eigenständige Konsolenbeispiel ein lokales Ergebnisobjekt und gibt dieselben beiden Felder wie das Bibliotheksbeispiel aus.
using System;
class Program
{
static void Main()
{
var result = new BarcodeResult("Code128", "123456789");
Console.WriteLine("Symbology Type: " + result.CodeType);
Console.WriteLine("CodeText: " + result.CodeText);
}
private sealed class BarcodeResult
{
public BarcodeResult(string codeType, string codeText)
{
CodeType = codeType;
CodeText = codeText;
}
public string CodeType { get; }
public string CodeText { get; }
}
}
Symbology Type: Code128
CodeText: 123456789
Der Aspose.BarCode-Reader ist ein kostenpflichtiges Tool. Für uneingeschränkte Funktionen ist eine Lizenz erforderlich.