Wie man Barcodes aus Bildern in C# liest

How to Read Barcodes From Image Files (JPEG, PNG, GIF, TIFF, SVG, BMP)

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 IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png");
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Minimaler Workflow (5 Schritte)

Wie man Barcodes aus Bildern in C# liest
  1. Laden Sie die C#-Bibliothek zum Lesen von Barcodes aus Bildern herunter
  2. Verwenden Sie die Read-Methode, um Barcode-Werte aus verschiedenen Bildformaten zu lesen
  3. Nutzen Sie die BarcodeReaderOptions-Klasse, um die Leseeinstellungen zu konfigurieren
  4. Geben Sie Barcode-Bereiche im Bild mit der CropArea-Eigenschaft an
  5. Geben Sie Barcode-Typen an, die durch Festlegen der ExpectBarcodeTypes-Eigenschaft gelesen werden sollen

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
Beispieltest-QR-Code
Code128intro related to Barcodes direkt aus Bildern lesen
Beispieltest-Barcode

Möchten Sie wissen, welche Werte die Barcodes in den Beispielen haben? Probieren Sie es mit dem Code-Snippet!

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? Machen Sie sich 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 im Detail alle einstellbaren Eigenschaften in BarcodeReaderOptions an.

CropArea

CropArea ist eine Eigenschaft vom Typ IronSoftware.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 optimalsten Reader-Optionen konfiguriert. Empfohlen für beste Ergebnisse und Leistung.
  • OnlyDetectionModel: Scannt das Bild nach Barcodes und gibt deren Positionen als Array von IronSoftware.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.

Reading Speed

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

  • Faster: Ermöglicht das schnellste Barcode-Lesen, verringert jedoch die Genauigkeit. Der Prozess überspringt die Bildvorverarbeitung, was häufig zu leeren Barcode-Ergebnissen führt. Verwenden Sie diese Einstellung nur, wenn das Eingangsbild scharf und klar ist.
  • Balanced: Diese Einstellung wird für die Eigenschaft Speed empfohlen. Es stellt ein Gleichgewicht zwischen Genauigkeit und Leseleistung her, indem es versucht, das Bild leicht zu verarbeiten, um den Barcode-Bereich klar und erkennbar für den Barcode-Leser zu machen. Meistens reicht diese Einstellung aus, um eine Barcode-Bild und produzieren genaue Ergebnisse
  • Detailed: Für Fälle, in denen die Einstellung ReadingSpeed.Balanced nicht erfolgreich ist, um Barcode-Werte aus dem Lesen zu erzeugen, können Benutzer die Einstellung ReadingSpeed.Detailed verwenden. IronBarcode wird eine mittlere Verarbeitung auf dem Bild durchführen, um den Barcode-Bereich weiter und deutlicher zu machen, damit der Barcode-Leser den Barcode erkennen kann. Diese Einstellung ist sehr nützlich, um ein kleines oder weniger scharfes Barcode-Bild zu erkennen. - ExtremeDetail: Diese Einstellung wird am wenigsten empfohlen, da ihr Prozess CPU-intensiv ist. Es wird eine schwere Verarbeitung auf dem Barcode-Bild durchgeführt, damit der Leser die Barcodes lesen kann. Dies wird die Lesegeschwindigkeit von IronBarcode erheblich verringern. Benutzern wird geraten, das Bild zuerst mit Filtern zu verarbeiten, bevor sie diese Einstellung verwenden. Das folgende Code-Snippet zeigt. Diese Einstellung ermöglicht das Lesen und Interpretieren von Code39-Barcode-Typen im erweiterten Modus, bei dem der vollständige ASCII-Zeichensatz angewendet wird. Das Setzen von UseCode39ExtendedMode auf true ermöglicht eine genauere Lesung von Code39-Barcodes. ## Fortgeschrittenes Barcode-Lesen aus dem Bild 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. Setting UseCode39ExtendedMode to true will enable a more accurate reading of Code39 barcodes.

Advance Barcode Read from Image

Now that we have learned all the options that can be tweaked by users, be it to increase performance or accuracy, let us see how we can apply it in our code. The code snippet below demonstrates.

// 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

From the code snippet, we see that to use BarcodeReaderOptions we have to first initialize it, then determine and adjust the properties of the BarcodeReaderOptions according to the properties stated above. The initialized BarcodeReaderOptions can then be used as an argument in the BarcodeReader.Read() method along with the image file. This will apply all the settings in BarcodeReaderOptions when reading a barcode from the image.

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 und setzt dieses Wissen ein, um Teammitgliedern bei Iron Software Mehrwert zu bieten. HAiril trat dem Iron Software-Team von der Universiti Teknologi MARA in Malaysia bei, wo er mit einem Bachelor ...
Weiterlesen
Bereit anzufangen?
Nuget Downloads 1,935,276 | Version: 2025.11 gerade veröffentlicht