Barcode aus Bild in C# lesen

Suchen Sie nach einer Möglichkeit, Barcodes oder QR-Codes programmgesteuert aus Bildern zu lesen? Sie sind Entwickler und müssen Ihre eigene Anwendung zum Lesen von Barcodes erstellen? Sie sind an der richtigen Stelle. Barcodes sind entscheidend für die genaue Verfolgung des Lagerbestands und der Lieferung von Produkten von der Herstellung bis zum Verkaufsort. Wir können verschiedene Arten von Barcodes und QR-Codes in .NET-Anwendungen leicht erkennen, erkennen und lesen. In diesem Artikel zeigen wir Ihnen, wie Sie einen Barcode aus einem Bild in C# lesen, indem Sie nur ein paar einfache Schritte befolgen. Sie können diesen Artikel als Schritt-für-Schritt-Anleitung für die Entwicklung von Barcodeleser- oder Scanneranwendungen verwenden.

Zunächst werfen wir einen Blick auf die C#-Barcode-Reader-API, um die im Eingabebild verfügbaren Barcodes zu lesen. Als Nächstes gehen wir durch die Schritte zum Erkennen, Erkennen und Extrahieren von Barcodedaten aus dem Bild. Sie finden detaillierte Schritte und Codeschnipsel. Abschließend stellen wir Ihnen nützliche Links für weitere Verbesserungen zur Verfügung. Also lasst uns anfangen!

Folgende Themen werden in diesem Artikel behandelt:

  1. C#-API zum Lesen von Barcodes aus Bildern
  2. Schritte zum Lesen von Barcodes aus einem Bild
  3. Barcode aus Bitmap lesen
  4. Barcode aus Bild mit Stream lesen
  5. So lesen Sie Strichcodes eines bestimmten Typs
  6. Barcodes mehrerer Typen aus einem Bild lesen
  7. Vordefinierte Sätze von Symbologien erkennen und lesen
  8. Mehrere Barcodes von einem Bild erkennen und lesen
  9. X- und Y-Koordinaten des Barcodes abrufen
  10. Barcode aus bestimmtem Bildbereich lesen
  11. Barcode aus mehreren Bildbereichen lesen

C#-API zum Lesen von Barcodes aus Bildern

Zum Lesen eines Barcodes aus einem Bild verwenden wir die API Aspose.BarCode for .NET. Die API ermöglicht das Generieren, Scannen und Lesen einer Vielzahl von Barcode-Symbologien. Es ermöglicht das Rendern von Barcodebildern im Format JPEG, TIFF, PNG, BMP und GIF.

Die API stellt die Klasse BarCodeReader bereit, die die Erkennung von mehr als 60 verschiedenen Barcodetypen aus gegebenen Bildern ermöglicht. Der erste Schritt beim Erkennen von Barcodes besteht darin, die Quelle eines Bildes mit Barcodes anzugeben. Dies kann eine Datei, ein Bitmap-Objekt oder ein Stream sein. Anschließend müssen Zielsymbologien im Parameter DecodeType angegeben werden. Wir können uns alle verschiedenen Arten von unterstützten Symbologien ansehen, indem wir DecodeType.AllSupportedTypes angeben. Die Methode ReadBarCodes() dieser Klasse gibt ein Array erkannter Barcodes zurück. Die Klasse BarCodeResult der API speichert die erkannten Barcodedaten wie Barcodetyp, Codetext, Region und andere Parameter.

Die API ermöglicht auch die Angabe der Regionen eines Bildes, die das Barcode-Lesegerät lesen soll. Dies kann mithilfe eines .NET-Rectangle-Objekts erreicht werden und verhindert, dass Barcodes in Bildbereichen gesucht werden müssen, die standardmäßig keine Barcodes enthalten.

Bitte laden Sie die DLL der API herunter oder installieren Sie sie mit NuGet.

PM> Install-Package Aspose.BarCode 

Barcode aus einem Bild mit C# lesen

Wir können einen Barcode leicht von einem Bild lesen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der BarCodeReader-Klasse.
  2. Rufen Sie die readBarCodes()-Methode auf und erhalten Sie Erkennungsergebnisse im BarCodeResult-Klassenobjekt.
  3. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie ein Barcode aus einem Bild in C# gelesen wird.

// Dieses Codebeispiel zeigt, wie Barcodes aus einer Bilddatei gelesen werden.
// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// Barcode lesen und Ergebnisse anzeigen
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Barcode aus einem Bild lesen.

Barcode aus einem Bild in C# lesen.

Barcode aus Bitmap in C# lesen

Wir können einen Barcode leicht von einem Bild lesen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der Bitmap-Klasse.
  2. Erstellen Sie als Nächstes eine Instanz der BarCodeReader-Klasse mit dem Bitmap-Objekt.
  3. Rufen Sie die ReadBarCodes()-Methode auf und erhalten Sie Erkennungsergebnisse im BarCodeResult-Klassenobjekt.
  4. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie ein Barcode aus einer Bitmap in C# gelesen wird.

// Dieses Codebeispiel zeigt, wie Barcodes aus Bitmaps gelesen werden.
// Bild in Bitmap laden
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader(bmp);

// Lesen Sie alle Barcodes im dafür vorgesehenen Bereich
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Barcode aus Bitmap-Bild in C# lesen.

Barcode aus Bitmap in C# lesen.

Barcode aus Bild mit Stream in C# lesen

Wir können das Barcode-Bild auch mithilfe eines Dateistreams laden und einen Barcode lesen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mithilfe der FileStream-Klasse.
  2. Erstellen Sie als Nächstes eine Instanz der BarCodeReader-Klasse mit Stream-Objekt.
  3. Rufen Sie die ReadBarCodes()-Methode auf und erhalten Sie Erkennungsergebnisse im BarCodeResult-Klassenobjekt.
  4. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie Sie mit Stream in C# einen Barcode aus einem Bild lesen.

// Dieses Codebeispiel zeigt, wie Barcodes aus einem Bild mithilfe des Dateistreams gelesen werden.
// Bild laden
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader(stream);

// Lesen Sie alle Barcodes im dafür vorgesehenen Bereich
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

Barcode eines bestimmten Typs aus Bild in C# lesen

Es wird empfohlen, Ziel-Barcode-Symbologien auszuwählen, die für die Erkennung berücksichtigt werden, um die für den Abschluss der Erkennung erforderliche Zeit zu minimieren und Versuche zu vermeiden, veraltete Barcodes zu erkennen.

Wir können den Ziel-Barcodetyp angeben und den Barcode aus einem Bild lesen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der BarCodeReader-Klasse.
  2. Legen Sie als Nächstes einen Barcode-Decodierungstyp fest, z. B. Code39Standard.
  3. Rufen Sie danach die Erkennungsergebnisse im Objekt der Klasse BarCodeResult mit der Methode ReadBarCodes() ab.
  4. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie ein Barcode eines bestimmten Typs mithilfe von C# aus einem Bild gelesen wird.

// Dieses Codebeispiel zeigt, wie Barcodes eines bestimmten Dekodierungstyps aus einem Bild gelesen werden.
// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// Barcode vom Typ Code39Extended lesen
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Barcode eines bestimmten Typs aus dem Bild erkennen

Erkennen Sie Barcodes eines bestimmten Typs aus einem Bild in C#.

Lesen Sie Barcodes mehrerer Typen aus dem Bild in C#

Wir können auch mehrere Barcode-Typen angeben, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der BarCodeReader-Klasse.
  2. Legen Sie als Nächstes einen Barcode-Decodierungstyp mit der Methode SetBarCodeReadType() fest.
  3. Rufen Sie danach die Erkennungsergebnisse im Objekt der Klasse BarCodeResult mit der Methode ReadBarCodes() ab.
  4. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie Barcodes mehrerer Typen mithilfe von C# aus einem Bild gelesen werden.

// Dieses Codebeispiel zeigt, wie Barcodes mehrerer Decodierungstypen aus einem Bild gelesen werden.
// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// Barcodes lesen
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Lesen Sie Barcodes mehrerer Typen aus dem Bild in C#

Lesen Sie Barcodes mehrerer Typen aus dem Bild in C#

Wir können auch mehrere Dekodierungstypen im Konstruktor der BarCodeReader-Klasse angeben, wie unten gezeigt:

BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

Vordefinierten Satz von Barcode-Typen aus Bild in C# lesen

Wir können einen vordefinierten Satz von Symbologien zur Erkennung lesen, die in der DecodeTypes-Klasse definiert sind. Wir können einen der folgenden vordefinierten Sätze festlegen:

  • AllSupportedTypes – alle unterstützten Barcode-Typen
  • Types1D - alle unterstützten 1D-Symbologien
  • Types2D – alle unterstützten 2D-Symbologien
  • PostalTypes - alle unterstützten postalischen Symbologien, die hauptsächlich von Postdiensten verwendet werden
  • MostCommonTypes – eine Reihe der am weitesten verbreiteten Barcode-Standards definiert

Wir können einen vordefinierten Satz angeben, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der BarCodeReader-Klasse.
  2. Legen Sie als Nächstes einen Barcode-Decodierungstyp im BarCodeReader-Konstruktor oder in der SetBarCodeReadType-Methode fest, z. B. DecodeType.Types2D.
  3. Rufen Sie danach die Erkennungsergebnisse im Objekt der Klasse BarCodeResult mit der Methode ReadBarCodes() ab.
  4. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie ein Barcode mit einem vordefinierten Satz von Symbologien in C# gelesen wird.

// Dieses Codebeispiel zeigt, wie ein Barcode mit vordefinierten Symbologien gelesen wird.
// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// Barcode lesen und Ergebnisse anzeigen
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Vordefinierten Satz von Barcode-Typen aus Bild in C# lesen

Vordefinierten Satz von Barcode-Typen aus Bild in C# lesen

Lesen Sie mehrere Barcodes aus dem Bild in C#

Wir können auch alle verfügbaren Barcodes aus einem Bild lesen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der BarCodeReader-Klasse.
  2. Legen Sie als Nächstes einen Barcode-Decodierungstyp als ALLSUPPORTEDTYPES fest.
  3. Rufen Sie danach die Erkennungsergebnisse im Objekt der Klasse BarCodeResult mit der Methode ReadBarCodes() ab.
  4. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie mit C# mehrere Barcodes aus einem Bild gelesen werden.

// Dieses Codebeispiel zeigt, wie mehrere Barcodes aus einem Bild gelesen werden.
// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// Lesen Sie alle Arten von Barcodes, die auf dem Eingabebild verfügbar sind
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Lesen Sie mehrere Barcodes aus dem Bild.

Lesen Sie mehrere Barcodes von einem Bild.

Holen Sie sich die X- und Y-Koordinaten des Barcodes mit C#

Wir können die X- und Y-Koordinaten des erkannten Barcodes aus einem Bild lesen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der BarCodeReader-Klasse.
  2. Rufen Sie als Nächstes mithilfe der ReadBarCodes()-Methode Erkennungsergebnisse im BarCodeResult-Klassenobjekt ab.
  3. Durchlaufen Sie dann die Ergebnisse und prüfen Sie, ob die Region nicht null ist.
  4. Rufen Sie danach das Points-Array ab, das den Barcodebereich mit Points begrenzt.
  5. Zeigen Sie abschließend die X- und Y-Punkte des Barcodes an.

Das folgende Codebeispiel zeigt, wie die X- und Y-Koordinatenpunkte eines Barcodes mithilfe von C# aus einem Bild abgerufen werden.

// Dieses Codebeispiel zeigt, wie der X- und Y-Regionspunkt von Barcodes aus einem Bild gelesen wird.
// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// Barcode lesen
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // Zeigen Sie die x- und y-Koordinaten aller erkannten Barcodes an
        Point[] point = result.Region.Points;
        Console.Out.WriteLine("Top left coordinates: X = " + point[0].X + ", Y = " + point[0].Y);
        Console.Out.WriteLine("Bottom left coordinates: X = " + point[1].X + ", Y = " + point[1].Y);
        Console.Out.WriteLine("Bottom right coordinates: X = " + point[2].X + ", Y = " + point[2].Y);
        Console.Out.WriteLine("Top right coordinates: X = " + point[3].X + ", Y = " + point[3].Y);
    }
}
Holen Sie sich die X- und Y-Koordinaten des Barcodes

Holen Sie sich die X- und Y-Koordinaten eines Barcodes aus einem Bild.

Barcode aus einem bestimmten Bildbereich in C# lesen

Wir können einen Barcode aus einer bestimmten Region oder einem Bereich eines Bildes lesen, indem wir die folgenden Schritte ausführen:

  1. Lesen Sie zunächst Pufferdaten einer Bilddatei mit der Bitmap-Methode.
  2. Erstellen Sie als Nächstes eine Instanz der BarCodeReader-Klasse. Als Argumente werden ein Bild, ein rechteckiger Bereich und ein Decodierungstyp verwendet.
  3. Rufen Sie danach die Erkennungsergebnisse im Objekt der Klasse BarCodeResult mit der Methode ReadBarCodes() ab.
  4. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie ein Barcode aus einem bestimmten Bereich eines Bildes mit C# gelesen wird.

// Dieses Codebeispiel zeigt, wie Barcodes aus bestimmten Bereichen eines Bildes gelesen werden.
// Bild laden
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// Erstellen Sie eine Instanz der BarCodeReader-Klasse
// und geben Sie einen Bereich an, in dem nach dem Barcode gesucht werden soll
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// Lesen Sie alle Barcodes im dafür vorgesehenen Bereich
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Lesen Sie den Barcode aus einem bestimmten Bildbereich.

Lesen Sie Barcodes aus einem bestimmten Bereich eines Bildes in C#.

Barcode aus mehreren Bildregionen in C# lesen

Wir können auch Barcodes aus mehreren Bereichen eines Bildes lesen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie zunächst ein Bild mit der Bitmap-Klasse.
  2. Definieren Sie als Nächstes Rechtecke mit der Rectangle-Klasse.
  3. Erstellen Sie dann eine Instanz der BarCodeReader-Klasse.
  4. Rufen Sie in der Zwischenzeit SetBarCodeImage() mit einem Bildobjekt und Rechtecken als Argumente auf.
  5. Legen Sie optional Barcode-Lesetypen mit der Methode SetBarCodeReadType() fest.
  6. Rufen Sie danach die Erkennungsergebnisse im Objekt der Klasse BarCodeResult mit der Methode ReadBarCodes() ab.
  7. Durchlaufen Sie abschließend die Ergebnisse und zeigen Sie Typ und Text des Barcodes an.

Das folgende Codebeispiel zeigt, wie ein Barcode aus mehreren Bereichen eines Bildes mit C# gelesen wird.

// Dieses Codebeispiel zeigt, wie Barcodes aus bestimmten Bereichen eines Bildes gelesen werden.
// Bild in Bitmap laden
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// Rechteck eines 2D-Barcodes im Quellbild
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// Rechteck des Code128-Barcodes im Quellbild
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// Barcodeleser initialisieren
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// Lesen Sie alle Barcodes im dafür vorgesehenen Bereich
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Barcode aus mehreren Bildregionen lesen.

Lesen Sie Barcodes aus mehreren Bereichen eines Bildes in C#.

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die Bibliothek ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben wir gelernt, wie man:

  • Barcode-Bilddatei laden;
  • Lesen Sie Bilder als Bitmap oder mit Dateistream;
  • Barcodes verschiedener Typen anhand eines Bildes erkennen;
  • Barcode-Koordinaten lesen;
  • mehrere Barcodes auf einem einzigen Bild erkennen und lesen;
  • Barcodes aus einem bestimmten Bereich eines Bildes erkennen und lesen.

Neben dem Lesen von Barcodes aus einem Bild in C# können Sie mithilfe von Dokumentation mehr über Aspose.BarCode für die .NET-API erfahren. Bei Unklarheiten können Sie sich gerne in unserem kostenlosen Support-Forum an uns wenden.

Siehe auch