Wie man Barcodes aus Bildern in C# liest

Lesen von BarCodes aus Bildern mit C

This article was translated from English: Does it need improvement?
Translated
View the article in English

Eine der Hauptfunktionen von IronBarcode ist die Fähigkeit, Barcodes sofort in mehreren Bildformaten zu lesen. Die folgenden Bildformate werden derzeit von IronBarcode unterstützt:

  • Scalable Vector Graphics (SVG)
  • Joint Photographic Experts Group (JPEG)
  • Portable Network Graphics (PNG)
  • Graphics Interchange Format (GIF)
  • Tagged Image File Format (TIFF)
  • Bitmap Image File (BMP)

This is made possible with the help of our open source library, IronDrawing.

als Überschrift:2(Schnellstart: Lesen Sie Barcodes in Sekundenschnelle aus einem Bild)

Mit nur einem einfachen Aufruf von IronBarCode.BarcodeReader.Read() können Sie Barcode-Daten direkt aus Bilddateiformaten wie PNG, JPEG, GIF, BMP und TIFF extrahieren. Sofort loslegen – keine komplizierte Einrichtung, nur sofortige Ergebnisse.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronBarcode mit dem NuGet-Paketmanager.

    PM > Install-Package BarCode

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronBarcode in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Barcodes direkt aus Bildern lesen

Lassen Sie uns nun sehen, wie wir IronBarcode tatsächlich für das Lesen von Barcodes verwenden können:

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-images-1.cs
using IronBarCode;
using System;

var myBarcode = BarcodeReader.Read(@"image_file_path.jpg"); //image file path

foreach (var item in myBarcode)
{
    Console.WriteLine(item.ToString());
}
Imports IronBarCode
Imports System

Private myBarcode = BarcodeReader.Read("image_file_path.jpg") 'image file path

For Each item In myBarcode
	Console.WriteLine(item.ToString())
Next item
$vbLabelText   $csharpLabel
QRcodeintro related to Barcodes direkt aus Bildern lesen
Beispiel für einen Test-QR-Code
Code128intro related to Barcodes direkt aus Bildern lesen
Beispiel eines Test-Barcodes

Möchten Sie wissen, was die BarCode-Werte in den Beispielen sind? Probieren Sie es mit dem Codeschnipsel aus!

Um IronBarcode zu verwenden, müssen Sie zunächst die IronBarcode-Bibliothek über den Microsoft Visual Studio NuGet-Paketmanager in Ihr Projekt installieren, wie im Bild unten gezeigt. Dies ermöglicht Ihnen den Zugriff auf die Methode BarcodeReader.Read() von IronBarcode, um Barcodes direkt aus Bildern zu lesen.

IronBarcode bietet Einfachheit, indem Benutzer nur BarcodeReader.Read() verwenden können, um eine Bilddatei zu lesen, die bereits im Projekt enthalten ist, indem sie den Dateinamen- oder Dateipfad-String als Parameter der Methode angeben. Die beste Vorgehensweise ist die Verwendung des wörtlichen Zeichenfolgenliterals "@", wenn ein Dateipfad in der Methode angegeben wird, um das Hinzufügen mehrerer Escape-Zeichen "" im Dateipfad-String zu vermeiden.

Fügen Sie die Methode Values() am Ende des Aufrufs der Methode BarcodeReader.Read() an, um den Barcode-Wert als System.String[]-Objekt zu erhalten.

Um das Ergebnis auf der Konsole auszugeben, können Sie eine foreach-Schleife verwenden, um über die im string[]-Array gespeicherten Werte zu iterieren, und innerhalb des Schleifenblocks die Methode Console.WriteLine() mit der Iterator-Variable als Parameter aufrufen.

IronBarcode ist in der Lage, 1-Dimensionale Barcode-Formate (Codabar, Code128, Code39, Code93, EAN13, EAN18, ITF, MSI, UPCA, UPCE) sowie 2-Dimensionale Barcode-Formate (Aztec, DataMatrix, QRCode) in verschiedenen Bildformaten zu lesen.

Barcode-Reader-Optionen einstellen

Finden Sie das Barcode-Lesen zu langsam? Ist der Barcode im Bild zu klein, sodass IronBarcode ihn nicht lesen kann? Möchten Sie nur bestimmte Bereiche eines Bildes lesen? Möchten Sie nur bestimmte Barcode-Typen in einem Bild mit einer Mischung von Barcodes lesen? Möchten Sie die Gesamtleseleistung verbessern? Keine Sorgen mehr!

BarcodeReaderOptions ermöglicht es Benutzern, das Verhalten des Barcode-Lesers zu optimieren oder anzupassen, um alle oben genannten Probleme zu lösen. Sehen wir uns alle einstellbaren Eigenschaften in BarcodeReaderOptions einzeln im Detail an.

CropArea

CropArea ist eine Eigenschaft vom Typ Iron Software.Drawing.CropRectangle, die in BarcodeReaderOptions verfügbar ist und es Benutzern ermöglicht, den Bereich in einem Bild anzugeben, den IronBarcode lesen soll. Dies trägt zur Verbesserung der Leseleistung bei, da der Barcode-Leser nicht das gesamte Bild nach Barcodes durchsuchen muss, sowie zur Verbesserung der Lesegenauigkeit, da der zu lesende Bereich angegeben wurde.

Um die CropArea-Eigenschaft festzulegen, erstellen Sie einfach ein neues Rectangle-Objekt und geben Sie die Rechteckkoordinaten, die Breite und die Länge des Rechtecks als Argumente an. Die akzeptierte Maßeinheit ist Pixel(px).

// Example of setting CropArea
var cropArea = new IronSoftware.Drawing.Rectangle(x, y, width, height);
// Example of setting CropArea
var cropArea = new IronSoftware.Drawing.Rectangle(x, y, width, height);
' Example of setting CropArea
Dim cropArea = New IronSoftware.Drawing.Rectangle(x, y, width, height)
$vbLabelText   $csharpLabel

ExpectBarcodeTypes

Standardmäßig werden alle von IronBarcode unterstützten Barcodes in einem Bild gescannt. Wenn der Benutzer jedoch weiß, welche Barcode-Typen verfügbar sind oder gelesen werden sollen, wird die Leistung und Genauigkeit beim Lesen erheblich verbessert, da der Barcode-Leser nicht durch Sammlungen von Barcodes iterieren muss, um einen Barcode zu interpretieren und zu lesen.

Um diese Eigenschaft zu verwenden, setzen Sie ExpectBarcodeTypes einfach auf eines der Felder des BarcodeEncoding-Enums. Unten sind Beispiele für jeden von IronBarcode unterstützten Barcode-Typ.

Hier ist eine Liste der Barcode-Typen mit zuvor bereitgestellten Beispielen und Erklärungen.

ExpectMultipleBarcodes

IronBarcode wird standardmäßig alle verfügbaren Barcodes in einem Bild scannen, was das Scannen der gesamten Bilddatei und das Hinzufügen der gelesenen Barcode-Werte in das Zeichenfolgenarray einschließt. Wenn Benutzer jedoch keine mehrere Barcodes in einer Bilddatei lesen möchten, können sie diese Eigenschaft auf false setzen, wodurch der Barcode-Leser das Scannen stoppt, sobald ein Barcode-Wert gefunden wurde. Dies wird wiederum die Leistung und die Lesegeschwindigkeit von IronBarcode verbessern.

ImageFilters

Eine der Eigenschaften, die in BarcodeReaderOptions hinzugefügt werden können, ist eine Sammlung von Bildfiltern. Bildfilter sind wichtig für die Vorverarbeitung des an IronBarcode übermittelten Rohbilds. Um Bildfilter im BarcodeReaderOptions anzuwenden, müssen Benutzer zuerst die zu verwendende ImageFilter-Sammlung initiieren und angeben.

MaxParallelThreads

IronBarcode ermöglicht Benutzern die Aktivierung und Optimierung der Anzahl der parallelen Thread-Ausführungen, was wiederum die Geschwindigkeit und Effizienz des Prozesses verbessert. Parallele Threads bedeuten die Ausführung mehrerer Threads gleichzeitig auf verschiedenen Prozessorkernen. Die Standardanzahl für die MaxParallelThread-Eigenschaft in IronBarcode ist 4. Benutzer können sie basierend auf den Fähigkeiten und der Menge der ihnen zur Verfügung stehenden Ressourcen anpassen.

Multithreaded

Diese Eigenschaft ermöglicht es IronBarcode, mehrere Bilder parallel zu lesen. Der Standard für Multithreaded ist true, wodurch die mehrfachen Threads automatisch verwaltet werden, um die Leistung für Batch-Barcode-Leseaufgaben zu verbessern.

RemoveFalsePositive

Diese Eigenschaft entfernt alle falsch-positiven Barcode-Lesungen. Falsch-positive Barcode-Lesungen bedeuten einfach eine falsche Lesung von Barcode-Werten, die jedoch als gültig identifiziert werden. Dies kann aufgrund von Fehlern im Sequenzierungsprozess oder Fehlern bei der Barcode-Kennzeichnung oder -Vorbereitung auftreten. Das Setzen von RemoveFalsePositive auf true wird die falsch-positiven Barcode-Lesungen entfernen und die Genauigkeit der Barcode-Lesung verbessern. Wenn Benutzer jedoch Leistung auf Kosten der Genauigkeit bevorzugen, würde das Setzen dieser Eigenschaft auf false helfen. Der Standardwert für diese Eigenschaft ist true.

ScanMode

Definieren Sie, wie IronBarcode Barcodes in einem Bild scannt und erkennt.

  • Auto: Liest Barcodes mit automatischer Bildvorverarbeitung und den optimal konfigurierten Leseroptionen. Empfohlen für beste Ergebnisse und Leistung.
  • OnlyDetectionModel: Scannt das Bild nach Barcodes und gibt deren Positionen als Array von Iron Software.Drawing.PointF zurück. Dieser Modus liest die erkannten Barcodes nicht; er gibt nur die Positionen jedes Barcodes zurück.
  • MachineLearningScan: Scannt das Bild nach Barcodes mit maschinellem Lernen zur Erkennung und liest sie.
  • OnlyBasicScan: Liest Barcodes ohne maschinelles Lernen zur Erkennung, automatische Bildvorverarbeitung oder Reader-Option-Konfiguration. Diese Option kann nur mit IronBarCode.Slim verwendet werden.

Lesegeschwindigkeit

Die Speed-Eigenschaft ermöglicht den Benutzern, die Leistung des IronBarcode-Readers weiter zu optimieren. Ähnlich wie bei der RemoveFalsePositive-Eigenschaft verbessert die Anpassung dieser Eigenschaft die Leistung auf Kosten der Genauigkeit. Es akzeptiert das ReadingSpeed-Enum, das 4 Stufen hat, wie unten gezeigt:

  • Schneller: Ermöglicht das schnellste Barcode-Scanning, reduziert jedoch die Genauigkeit. Der Prozess überspringt die Bildvorverarbeitung, was oft zu leeren Barcode-Ergebnissen führt. Verwenden Sie diese Einstellung nur, wenn das Eingangsbild scharf und klar ist.
  • Ausgewogen: Diese Einstellung wird empfohlen für die Speed-Eigenschaft. Sie stellt ein Gleichgewicht zwischen Genauigkeit und Leseleistung her, indem versucht wird, eine leichte Verarbeitung auf das Bild anzuwenden, um den Barcodebereich zu klären und ihn hervorzuheben, damit der Barcode-Scanner ihn erkennen kann. Die meisten Zeit ist diese Einstellung ausreichend, dass IronBarcode ein Barcode-Bild liest und genaue Ausgaben erzeugt.
  • Detailiert: Wenn ReadingSpeed.Balanced nicht funktioniert, verwenden Sie ReadingSpeed.Detailed. IronBarcode verarbeitet das Bild, um den Barcode-Bereich klarer zu machen und zu erkennen. Nützlich für kleine oder unscharfe Barcodes. IronBarcode führt eine mittlere Verarbeitung des Bildes durch, um den Barcode-Bereich weiter zu klären und klarer für den Barcode-Reader zu machen, um den Barcode zu erkennen. Diese Einstellung ist sehr nützlich, um ein kleines oder weniger klares Barcode-Bild zu erkennen.
  • ExtremeDetail: Diese Einstellung ist die wenigstens empfohlene aufgrund des CPU-intensiven Prozesses. Schwere Verarbeitung wird auf das Barcode-Bild durchgeführt, damit der Leser die Barcodes lesen kann. Dies wird die Leseleistung von IronBarcode erheblich reduzieren. Jetzt, da wir alle Optionen kennen, die Benutzer optimieren können, um die Leistung oder die Genauigkeit zu erhöhen, lassen Sie uns sehen, wie wir sie in unserem Code anwenden können.

Das folgende Code-Snippet zeigt.

Aus dem Code-Snippet sehen wir, dass um BarcodeReaderOptions zu verwenden, müssen wir sie zuerst initialisieren und dann die Eigenschaften von BarcodeReaderOptions entsprechend den oben genannten Eigenschaften anpassen. Die initialisierte BarcodeReaderOptions kann dann als Argument in der BarcodeReader.Read()-Methode zusammen mit der Bilddatei verwendet werden. Dadurch werden alle Einstellungen in BarcodeReaderOptions beim Lesen eines Barcodes aus dem Bild angewendet. Durch die Einstellung UseCode39ExtendedMode auf true wird ein genaueres Lesen von Code39-Barcodes ermöglicht.

Erweiterte Barcode-Lesung aus einem Bild

Nachdem wir nun alle Optionen kennengelernt haben, die von Benutzern angepasst werden können, sei es zur Steigerung der Leistung oder Genauigkeit, wollen wir uns ansehen, wie wir dies in unserem Code anwenden können. Der folgende Codeausschnitt veranschaulicht dies.

// Insert actual C# code for advanced barcode reading from images here
// Ensure the necessary options and settings are demonstrated in the example
// Insert actual C# code for advanced barcode reading from images here
// Ensure the necessary options and settings are demonstrated in the example
' Insert actual C# code for advanced barcode reading from images here
' Ensure the necessary options and settings are demonstrated in the example
$vbLabelText   $csharpLabel

Aus dem Codeausschnitt geht hervor, dass wir BarcodeReaderOptions zunächst initialisieren und anschließend die Eigenschaften von BarcodeReaderOptions gemäß den oben genannten Eigenschaften bestimmen und anpassen müssen. Die initialisierten BarcodeReaderOptions können dann zusammen mit der Bilddatei als Argument in der Methode BarcodeReader.Read() verwendet werden. Dadurch werden alle in BarcodeReaderOptions festgelegten Einstellungen beim Lesen eines Barcodes aus dem Bild angewendet.

Häufig gestellte Fragen

Wie kann ich Barcodes aus Bildern in einer .NET-Anwendung lesen?

Sie können die BarcodeReader.Read()-Methode aus IronBarcode verwenden, um Barcodes aus Bilddateien wie JPEG, PNG, GIF, TIFF, SVG und BMP zu lesen.

Welche Optionen stehen zur Verfügung, um das Barcode-Lesen in IronBarcode anzupassen?

Die BarcodeReaderOptions-Klasse ermöglicht die Anpassung des Barcode-Lesens durch Festlegen von Eigenschaften wie CropArea, ExpectBarcodeTypes, ImageFilters, MaxParallelThreads und RemoveFalsePositive.

Wie kann ich die Genauigkeit des Barcode-Lesens in meiner Anwendung verbessern?

Die Verbesserung der Barcode-Lesegenauigkeit kann durch die Verwendung der RemoveFalsePositive-Eigenschaft zur Eliminierung von Fehlalarmen und Anpassung der Lesegeschwindigkeit mit Optionen wie Detail oder ExtremeDetail erreicht werden.

Ist es möglich, das Barcode-Lesen in .NET multithreaded auszuführen?

Ja, IronBarcode unterstützt das multithreaded Barcode-Lesen. Sie können dies aktivieren, indem Sie die Multithreaded-Eigenschaft auf true setzen, was eine automatische Verwaltung der Threads ermöglicht.

Wie gebe ich einen Bereich eines Bildes an, der nach Barcodes gescannt werden soll?

Sie können einen Bereich innerhalb eines Bildes angeben, indem Sie die CropArea-Eigenschaft in der BarcodeReaderOptions-Klasse in IronBarcode festlegen.

Welche Vorteile bietet die Verwendung von maschinellem Lernen beim Barcode-Lesen?

Die Verwendung von maschinellem Lernen zur Barcode-Erkennung kann die Genauigkeit und Effizienz des Lesens verbessern, indem es sich an verschiedene Bildbedingungen anpasst und die Erkennungsfähigkeiten in IronBarcode verbessert.

Wie kann ich verschiedene Barcode-Formate in IronBarcode handhaben?

IronBarcode ist in der Lage, sowohl 1D- als auch 2D-Barcode-Formate zu lesen. Sie können die zu erwartenden Barcode-Typen mit der ExpectBarcodeTypes-Eigenschaft angeben.

Wie ist der Prozess zur Installation einer Barcode-Lesebibliothek in einem .NET-Projekt?

Um die IronBarcode-Bibliothek in einem .NET-Projekt zu installieren, verwenden Sie den NuGet-Paketmanager in Microsoft Visual Studio, um die Bibliothek herunterzuladen und zu integrieren.

Welche Bildvorverarbeitungsoptionen sind in IronBarcode verfügbar?

IronBarcode bietet Bildvorverarbeitungsoptionen über die ImageFilters-Eigenschaft, die es Nutzern ermöglicht, Bilder vor dem Lesen von Barcodes zu verbessern.

Wie optimiere ich die Barcode-Leseleistung für große Bilddateien?

Optimieren Sie die Leistung, indem Sie die MaxParallelThreads auf mehrere Threads einstellen und die Lesegeschwindigkeit gemäß Ihren Bedürfnissen anpassen.

Hairil Hasyimi Bin Omar
Software Ingenieur
Wie alle großen Ingenieure ist Hairil ein leidenschaftlicher Lerner. Er verfeinert sein Wissen in C#, Python und Java, um Iron Software-Teammitgliedern Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia, wo er seinen Bachelor in Chemie- und Verfahrenstechnik abschloss.
Bereit anzufangen?
Nuget Downloads 1,979,979 | Version: 2025.11 gerade veröffentlicht