So lesen Sie Barcodes aus Bilddateien (JPEG, PNG, GIF, TIFF, SVG, BMP)

Hairil related to So lesen Sie Barcodes aus Bilddateien (JPEG, PNG, GIF, TIFF, SVG, BMP)
Hairil Hasyimi Bin Omar
19. März 2023
Aktualisiert 8. Februar 2025
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English


Beginnen Sie noch heute mit der Verwendung von IronBarcode in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer

Barcodes direkt von Bildern lesen

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

* Skalierbare Vektorgrafiken (SVG)

* Gemeinsame Expertengruppe für Fotografie (JPEG)

* Portable Netzwerkgrafiken (PNG)

* Grafik-Austauschformat (GIF)

* Tagged Image File Format (TIFF)

* Bitmap-Bilddatei (BMP)

Dies wird mit Hilfe unserer Open-Source-Bibliothek IronDrawing ermöglicht. Nun, schauen wir uns an, wie wir IronBarcode tatsächlich für das Barcode-Lesen 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 von Bildern lesen
Beispiel für einen QR-Code
Code128intro related to Barcodes direkt von Bildern lesen
Barcode für Musterprüfung

Möchten Sie wissen, welche Barcode-Werte in den Beispielen enthalten sind? Probieren Sie es mit dem Code-Snippet aus! Um IronBarcode zu verwenden, müssen Sie als erstes die IronBarcode-Bibliothek über den Microsoft Visual Studio NuGet-Paketmanager in Ihr Projekt installieren, wie in der Abbildung unten gezeigt. Dadurch können Sie die BarcodeReader.Read()-Methode von IronBarcode verwenden, um direkt ein Barcode-Bild zu lesen.

Aus dem obigen Codeausschnitt können wir sehen, dass IronBarcode Einfachheit bietet, indem es den Benutzern ermöglicht, nur BarcodeReader.Read() zu verwenden, um eine Bilddatei auszulesen, die bereits im Projekt enthalten ist, indem sie den Dateinamen-String ODER den Dateipfad-String als Parameter für die Methode angeben. Es empfiehlt sich, bei der Angabe eines Dateipfads in der Methode das wortwörtliche Zeichen "@" zu verwenden, da die Benutzer andernfalls mehrere Escape-Zeichen "\" in die Dateipfadzeichenkette einfügen müssten.

Hängen Sie die Methode Values() an das Ende des Methodenaufrufs BarcodeReader.Read() an, um den Barcode-Wert als System.String []-Objekt zu erhalten.

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

Diese Methode kann nicht nur 1-dimensionale Barcode-Formate (Codabar, Code128, Code39, Code93, EAN13, EAN18, ITF, MSI, UPCA, UPCE) lesen, sondern auch 2-dimensionale Barcode-Formate (Aztec, DataMatrix, QRCode) in verschiedenen Bildformaten.

Einstellen der Barcode-Leseroptionen

Ist Ihnen das Lesen von Barcodes zu langsam? Der Barcode ist auf dem Bild zu klein und IronBarcode kann ihn nicht lesen? Möchten Sie nur bestimmte Bereiche eines Bildes lesen? Möchten Sie nur bestimmte Arten von Barcodes in einem Bild mit gemischten Barcodes lesen? Möchten Sie die allgemeine Leseleistung verbessern? Keine Sorgen mehr!

BarcodeReaderOptions ermöglicht es Benutzern, das Verhalten des Barcode-Lesers anzupassen oder zu ändern, damit er alle oben genannten Probleme lösen kann. Lassen Sie uns alle einstellbaren Eigenschaften, die in BarcodeReaderOptions verfügbar sind, im Detail einzeln ansehen und besprechen:

Anbaufläche

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. Dadurch wird die Leseleistung verbessert, da der Barcodeleser nicht das gesamte Bild nach Barcodes absuchen muss, und die Lesegenauigkeit erhöht, da der Lesebereich festgelegt ist.

Um die CropArea-Eigenschaft festzulegen, erstellen Sie einfach ein neues Objekt des Typs Rectangle und geben Sie die Rechteckkoordinaten, die Breite und die Länge des Rechtecks als Argumente an. Die akzeptierte Maßeinheit ist Pixel(px). csharp CropArea = new IronSoftware.Drawing.Rectangle(x, y, width, height)

ExpectBarcodeTypes

Standardmäßig werden alle unterstützten Barcodes in IronBarcode als Bild gescannt. Wenn der Benutzer jedoch weiß, welche Arten von Barcodes in einem Bild vorhanden sind oder gelesen werden sollen, kann die Einstellung dieser Eigenschaft, nur bestimmte Arten von Barcodes zu lesen, die Leseleistung und -genauigkeit erheblich steigern, 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 einfach ExpectBarcodeTypes auf eines der Felder des BarcodeEncoding-Enums. Lernen Sie alle von IronBarcode unterstützten Barcodetypen kennen und sehen Sie sich ein Beispiel für jeden Barcodetyp an.

  • AllOneDimensional : Lineare Arten von Barcode. Dazu gehören Codabar, Code128, Code39, Code93, EAN13, EAN18, ITF, MSI, UPCA, UPCE Barcodes.

  • AllTwoDimensional : Dies umfasst Gitter, Matrix und gestapelte Barcodes. Die Barcode-Typen, die unter die 2-dimensionalen Barcodes fallen, sind Aztec-, DataMatrix- und QRCode-Barcodes.

  • Aztec : Aztec 2D-Barcode-Format. Aztec Code ist eine Art von 2D-Barcode, der 1995 von Andrew Longacre Jr. und Robert Hussey erfunden wurde. Benannt nach dem Zentralmuster, das einer Aztekenpyramide ähnelt, hat der Aztec-Code das Potenzial, weniger Platz als andere Matrix-Barcodes zu benötigen, da er keine umgebende leere "Ruhezone" erfordert. Unten ist ein Beispiel eines Aztec-Barcodes
  • Aztec-Barcode-Beispiel
    Azteken-Barcode
  • Codabar: Codabar ist eine lineare Barcode-Symbologie, die 1972 von der Pitney Bowes Corp entwickelt wurde. Codabar kodiert nur numerische Daten (Ziffern). Unten finden Sie ein Beispiel für einen Codabar-Barcode.
  • Codabar-Barcode-Beispiel
    Codabar Strichcode
  • Code128 : Code 128 ist eine hochdichte lineare Barcode-Symbologie, definiert in ISO/IEC 15417:2007. Sie wird für alphanumerische oder nur numerische Barcodes verwendet. Unten ist ein Beispiel für einen Code128-Barcode
  • Code128-Barcode-Beispiel
    Code128 Strichcode
  • Code39: Code 39 ist eine variable Länge, diskrete Barcode-Symbolik. Die Code 39-Spezifikation definiert 43 Zeichen, bestehend aus Großbuchstaben (A bis Z). Nachfolgend ein Beispiel für einen Code39-Barcode
  • Code39-Barcode-Beispiel
    Code39 Strichcode
  • Code93 : Code 93 1D-Barcode-Format. Code 93 ist eine Barcode-Symbologie, die 1982 von Intermec entwickelt wurde, um Code 39 mit höherer Dichte und verbesserter Datensicherheit zu erweitern. Code 93 unterstützt die Kodierung nur der folgenden ASCII-Zeichen: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - . $ / + % LEERTASTE. Unten ist ein Beispiel für einen Code93-Barcode dargestellt
  • Code93-Barcode-Beispiel
    Code93 Strichcode
  • DataMatrix : Ein Data Matrix ist ein zweidimensionaler Barcode, der aus schwarzen und weißen "Zellen" oder Modulen besteht, die entweder in einem quadratischen oder rechteckigen Muster angeordnet sind, auch bekannt als Matrix. Die zu kodierenden Informationen können Text- oder numerische Daten sein. Die übliche Datengröße reicht von wenigen Bytes bis zu 1556 Bytes. Unten ist ein Beispiel für einen DataMatrix-Barcode.
  • DataMatrix Barcode-Beispiel
    DataMatrix Barcode
  • EAN13 : Die Internationale Artikelnummer (auch bekannt als Europäische Artikelnummer oder EAN) ist ein Standard, der eine Barcode-Symbologie und ein Nummerierungssystem beschreibt, das im globalen Handel verwendet wird, um einen spezifischen Einzelhandelstyp, in einer spezifischen Verpackungskonfiguration, von einem bestimmten Hersteller zu identifizieren. EAN-13 kann ausschließlich numerische (digitale) Inhalte der Länge von 12 oder 13 Ziffern codieren. Kürzere Barcodes werden automatisch mit führenden Nullen (000) am Anfang der Nummer ergänzt. Unten ist ein Beispiel für einen EAN13-Barcode
  • EAN13-Strichcode-Muster
    EAN13-Strichcode
  • EAN8: Ein EAN-8 ist ein EAN/UPC-Symbologie-Barcode und leitet sich von dem längeren internationalen Artikelnummer-Code (EAN-13) ab. EAN-8 kann nur numerischen Inhalt (Ziffern) mit einer Länge von 7 oder 8 Ziffern kodieren. Kürzere Barcodes erhalten automatisch führende Nullen (000) am Anfang der Zahl. Unten ist ein Beispiel eines EAN8-Barcodes dargestellt.
  • EAN8-Strichcode-Muster
    EAN8-Strichcode
  • IntelligentMail: Intelligent Mail 2D-Barcode-Format. Der Intelligent Mail Barcode (auch bekannt als "IM Barcode" oder "USPS OneCode Barcodes" oder "IMB") ist ein 65-Balken-Barcode, der auf Post in den Vereinigten Staaten verwendet wird. Der Begriff "Intelligent Mail" bezieht sich auf Dienstleistungen, die vom United States Postal Service für die Zustellung von Inlandsbriefen angeboten werden. Der IM-Barcode soll mehr Informationen und Funktionen bieten als seine Vorgänger POSTNET und PLANET. Bitte beachten Sie, dass IronBarcode nur DIESEN Barcode-Typ LESEN kann. Nachfolgend finden Sie ein Beispiel für einen Barcode dieses Typs
  • IntelligentMail Barcode-Beispiel
    IntelligentMail Barcode
  • ITF : ITF-14 ist die GS1-Implementierung eines Interleaved 2 of 5 (ITF) Barcodes zur Verschlüsselung einer Global Trade Item Number. ITF-14-Symbole werden in der Regel auf Verpackungsebenen eines Produkts verwendet, wie zum Beispiel bei einem Karton mit 24 Suppendosen. Der ITF-14 codiert immer 14 Ziffern. ITF codiert ausschließlich numerische Daten. Wenn die Anzahl der Ziffern ungerade ist, wird automatisch eine '0' vorangestellt. Unten ist ein Beispiel für einen ITF-Barcode
  • ITF-Barcode-Muster
    ITF-Strichcode
  • MaxiCode : MaxiCode 2D-Barcode-Format. MaxiCode ist ein öffentliches, maschinenlesbares Symbolsystem, das ursprünglich von United Parcel Service erstellt und verwendet wurde. Es eignet sich zur Verfolgung und Verwaltung des Versands von Paketen und ähnelt einem Barcode, verwendet jedoch stattdessen Punkte, die in einem hexagonalen Raster angeordnet sind. Bitte beachten Sie, dass IronBarcode nur lesen kann diesen Barcode-Typ. Nachfolgend sehen Sie ein Beispiel für einen Barcode dieses Typs.
  • MaxiCode Barcode-Beispiel
    MaxiCode Strichcode
  • MSI: MSI ist eine Barcode-Symbologie, die von der MSI Data Corporation entwickelt wurde, basierend auf der ursprünglichen Plessey-Code-Symbologie. Dieser Barcode-Typ akzeptiert nur numerische Werte. Unten ist ein Beispiel für einen MSI-Barcode
  • MSI-Barcode-Beispiel
    MSI-Strichcode
  • PDF417: PDF417 ist ein gestapeltes lineares Barcode-Symbolformat, das in einer Vielzahl von Anwendungen eingesetzt wird, hauptsächlich im Transportwesen, bei Ausweiskarten und im Bestandsmanagement. PDF steht für Portable Data File. Die 417 bedeutet, dass jedes Muster im Code aus 4 Balken und Zwischenräumen besteht und dass jedes Muster 17 Einheiten lang ist. Die PDF417-Symbologie wurde 1991 von Dr. Ynjiun P. Wang bei Symbol Technologies erfunden. (Wang 1993) Es ist der ISO-Standard 15438. Unten ist ein Beispiel für einen PDF417-Barcode
  • PDF417-Barcode-Beispiel
    PDF417-Strichcode
  • Plessey: Plessey Code ist eine 1D-lineare Barcode-Symbologie, die auf Pulsweitenmodulation basiert und 1971 von The Plessey Company PLC, einem in Großbritannien ansässigen Unternehmen, entwickelt wurde. Dieser Barcode-Typ akzeptiert nur numerische Werte. Unten ist ein Beispiel für einen Plessey-Barcode zu sehen.
  • Plessey Barcode Muster
    Plessey Barcode
  • QR-Code: QR-Code (abgeleitet von Quick Response Code) ist das Markenzeichen für eine Art von Matrixbarcode (oder zweidimensionalem Barcode), der erstmals 1994 für die Automobilindustrie in Japan entworfen wurde. Ein Barcode ist ein maschinenlesbares optisches Etikett, das Informationen über den Gegenstand enthält, an dem es angebracht ist. Ein QR-Code verwendet vier standardisierte Kodierungsmodi (numerisch, alphanumerisch, Byte/Binär und Kanji), um Daten effizient zu speichern; Erweiterungen können ebenfalls verwendet werden. Unten ist ein Beispiel eines QR-Code-Barcodes dargestellt.
  • QRCode Barcode-Beispiel
    QRCode Strichcode
  • Rss14: Reduce Space Symbology 14 Barcode-Format. Kann einen 1D-Barcode oder gestapelten 2D-Barcode darstellen. Der RSS 14 Barcode (Reduce Space Symbology) kodiert die vollständige 14-stellige EAN.UCC-Artikelidentifikation in einem Symbol, das von entsprechend konfigurierten Point-of-Sale-Laserscannern omnidirektional gescannt werden kann. Es ist der neueste Barcode-Typ zur platzsparenden Identifikation von EAN International und dem Uniform Code Council, Inc. RSS-Barcodes wurden entwickelt, um die Lebensmittelindustrie und den Gesundheitsbereich anzusprechen, wo Artikel zu klein sind, um andere Barcode-Symbologien zuzulassen. Bitte beachten Sie, dass IronBarcode diesen Barcode-Typ nur LESEN kann. Unten ist ein Beispiel für den Rss14-Barcode
  • 1D Rss14 Barcode Beispiel
    1 dimensionaler Rss14-Strichcode
    2D Rss14 Barcode Beispiel
    2 dimensionaler Rss14 Barcode
  • UPCA: Der Universal Product Code (UPC) ist eine Barcodesymbologie, die in den Vereinigten Staaten, Kanada, dem Vereinigten Königreich, Australien, Neuseeland, in Europa und anderen Ländern weit verbreitet ist, um Handelswaren in Geschäften zu verfolgen. UPC (technisch bezieht sich auf UPC-A) besteht aus 12 numerischen Ziffern, die jedem Handelsartikel eindeutig zugewiesen sind. Zusammen mit dem verwandten EAN-Barcode ist der UPC der Barcode, der hauptsächlich zum Scannen von Handelsartikeln am Verkaufsort gemäß den GS1-Spezifikationen verwendet wird. UPCA kann nur numerische Inhalte (Ziffern) von einer Länge von 12 oder 13 Ziffern kodieren. Kürzere Barcodes werden automatisch mit führenden Nullen (000) am Anfang der Zahl ergänzt. Unten ist ein Beispiel für einen UPCA-Barcode.
  • UPCA-Barcode-Muster
    UPCA-Strichcode
  • UPCE : Um die Verwendung von UPC-Barcodes auf kleineren Verpackungen zu ermöglichen, bei denen ein vollständiger 12-stelliger Barcode möglicherweise nicht passt, wurde eine 'Null-unterdrückte' Version von UPC entwickelt, die UPC-E genannt wird, bei der das Ziffernsystem, alle nachfolgenden Nullen im Hersteller-Code und alle führenden Nullen im Produktcode unterdrückt werden. UPCE kann nur numerische (Ziffern) Inhalte mit einer Länge von 7 oder 8 Ziffern kodieren. Unten ist ein Beispiel für einen UPCE-Barcode aufgeführt
  • UPCE Barcode-Beispiel
    UPCE Barcode

ExpectMultipleBarcodes

IronBarcode scannt standardmäßig alle in einem Bild vorhandenen Barcodes, d.h. es wird die gesamte Bilddatei gescannt und die gelesenen Barcodewerte werden in das String-Array eingetragen. Wenn Benutzer jedoch nicht mehrere Barcodes in einer Bilddatei lesen möchten, können sie diese Eigenschaft auf false setzen, wodurch der Barcode-Leser den Scan stoppt, sobald ein Barcode-Wert gefunden wurde. Dies wird die Leistung und die Lesegeschwindigkeit von IronBarcode weiter verbessern.

ImageFilters

Eine der Eigenschaften, die in BarcodeReaderOptions hinzugefügt werden können, ist eine Sammlung von Bildfiltern. Bildfilter sind wichtig, um das in Iron Barcode eingespeiste Rohbild vorzuverarbeiten. Um Bildfilter innerhalb der BarcodeReaderOptions anzuwenden, müssen Benutzer zuerst die ImageFilter-Sammlung initiieren und angeben, die verwendet werden soll.

MaxParallelThreads

IronBarcode ermöglicht es dem Benutzer auch, die Anzahl der parallel ausgeführten Threads zu aktivieren und zu optimieren, was wiederum die Geschwindigkeit und Effizienz des Prozesses verbessert. Parallele Threads bedeuten die gleichzeitige Ausführung von mehreren Threads auf verschiedenen Prozessorkernen. Der Standardwert für die MaxParallelThread-Eigenschaft in IronBarcode ist 4. Benutzer können diesen Wert anpassen, basierend auf den Fähigkeiten und der Menge an Ressourcen, die ihre Maschinen haben.

Multithreading

Diese Eigenschaft ermöglicht es IronBarcode, mehrere Bilder parallel zu lesen. Der Standardwert für Multihreaded ist True. Daher werden die mehreren Threads automatisch verwaltet, um die Leistung bei Batch-Barcode-Leseaufgaben zu verbessern.

RemoveFalsePositive

Mit dieser Eigenschaft werden alle falsch-positiven Barcode-Lesungen entfernt. Falsch positive Barcodelesungen bedeuten einfach, dass ein Barcode falsch gelesen, aber als gültig erkannt wurde. Dies kann auf Fehler im Sequenzierungsprozess, wie z. B. Sequenzierungsfehler, oder Fehler bei der Barcode-Etikettierung oder -Vorbereitung zurückzuführen sein. Das Setzen von RemoveFalsePositive auf true wird daher die fehlerhaften Barcode-Erkennungen entfernen und somit die Genauigkeit der Barcode-Erkennung verbessern. Allerdings, wenn Benutzer Leistung auf Kosten der Genauigkeit wünschen, 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 IronSoftware.Drawing.PointF zurück. Dieser Modus liest die erkannten Barcodes nicht; es gibt nur die Positionen jedes Barcodes zurück.
  • MachineLearningScan: Scannt das Bild nach Barcodes mit maschinellem Lernen und liest sie aus.
  • OnlyBasicScan: Liest Barcodes ohne maschinelles Lernen, automatische Bildvorverarbeitung oder Konfiguration der Lesereinstellungen.

    Diese Option kann nur mit IronBarCode.Slim verwendet werden.

Lesegeschwindigkeit

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

  • Schneller: Wenn die Geschwindigkeit-Eigenschaft auf diesen Wert eingestellt wird, ermöglicht dies das schnellste Barcode-Lesen, verringert jedoch die Genauigkeit. Der Prozess überspringt die Bildvorverarbeitung, was oft zu leeren Barcode-Ergebnissen führt. Verwenden Sie diese Einstellung nur, wenn das Eingabebild scharf und klar ist.
  • Ausgewogen: Diese Einstellung wird für die Speed-Eigenschaft empfohlen. Es stellt ein Gleichgewicht zwischen Genauigkeit und Leseleistung her, indem es versucht, Lichtverarbeitung auf das Bild anzuwenden, um den Strichcodebereich zu verdeutlichen und ihn für das Strichcodelesegerät erkennbar zu machen. In den meisten Fällen reicht diese Einstellung aus, damit IronBarcode ein Barcodebild lesen und korrekt ausgeben kann.
  • Detailliert: Falls die Einstellung ReadingSpeed.Balanced nicht erfolgreich ist, um den Barcode-Wert aus der Lesung zu erzeugen, können Benutzer die Option ReadingSpeed.Detailed verwenden. IronBarcode führt eine mittlere Bearbeitung des Bildes durch, um den Barcodebereich weiter zu verdeutlichen, damit der Barcodeleser den Barcode besser erkennen kann. Diese Einstellung ist sehr nützlich, um ein kleines oder unscharfes Barcodebild zu erkennen.
  • ExtremeDetail: Diese Einstellung ist die wenigstens empfohlene Einstellung aufgrund des CPU-intensiven Prozesses, bei dem eine umfangreiche Verarbeitung des Barcodes vorgenommen wird, damit der Leser die Barcodes lesen kann. Dadurch wird die Leseleistung von IronBarcode stark reduziert. Es wird empfohlen, das Bild vor dieser Einstellung vorzubearbeiten bzw. Filter auf das Bild anzuwenden.

    Bitte beachten Sie jedoch, dass diese Einstellung CPU-intensiv ist und die Leseleistung beeinträchtigen kann. Es wird empfohlen, mit anderen Einstellungen zu experimentieren, bevor Sie diese Einstellung verwenden. Kombination von ReadingSpeed.Detailed mit RemoveFalsePositive auf "True" gesetzt, wird eine Warnung in der Konsole ausgeben. Dies hat jedoch keinen Einfluss auf das Lesen und kann ignoriert werden. -->

    Bitte beachten Sie jedoch, dass diese Einstellung CPU-intensiv ist und die Leseleistung beeinträchtigen kann. Es wird empfohlen, mit anderen Einstellungen zu experimentieren, bevor Sie diese Einstellung verwenden. Kombination von ReadingSpeed.ExtremeDetail mit RemoveFalsePositive auf "True" gesetzt, führt dazu, dass eine Warnung in der Konsole ausgegeben wird. Dies hat jedoch keinen Einfluss auf das Lesen und kann ignoriert werden. -->

UseCode39ExtendedMode

Mit dieser Einstellung können Barcodes vom Typ Code39 im erweiterten Modus gelesen und interpretiert werden, wobei der gesamte ASCII-Zeichensatz verwendet wird. Das Setzen von UseCode39ExtendedMode auf True ermöglicht eine genauere Erkennung von Code39-Barcodes.

Advance Barcode aus Bild lesen

Nachdem wir nun alle Optionen kennengelernt haben, die von den Benutzern angepasst werden können, sei es zur Steigerung der Leistung oder der Genauigkeit, wollen wir sehen, wie wir sie in unserem Code anwenden können. Das folgende Codeschnipsel veranschaulicht dies.

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

BarcodeReaderOptions myOptions = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional, //or AllTwoDimensional
    ExpectMultipleBarcodes = true, // Default is true
    MaxParallelThreads = 2, // Default is 4
    Speed = ReadingSpeed.Detailed, // 4 levels of speed. Default is Balanced
    CropArea = new IronSoftware.Drawing.Rectangle(x: 242, y: 1124, width: 359, height: 378), // Units are in px
    ImageFilters = new ImageFilterCollection { new BinaryThresholdFilter() }, // Assign to image filter object name
    Multithreaded = true, // Default is true
    UseCode39ExtendedMode = true, // Default is true

};

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

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

Private myOptions As New BarcodeReaderOptions() With {
	.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
	.ExpectMultipleBarcodes = True,
	.MaxParallelThreads = 2,
	.Speed = ReadingSpeed.Detailed,
	.CropArea = New IronSoftware.Drawing.Rectangle(x:= 242, y:= 1124, width:= 359, height:= 378),
	.ImageFilters = New ImageFilterCollection From {New BinaryThresholdFilter()},
	.Multithreaded = True,
	.UseCode39ExtendedMode = True
}

Private myBarcode = BarcodeReader.Read("image_file_path.jpg", myOptions) ' Image file path

For Each item In myBarcode
	Console.WriteLine(item.ToString())
Next item
$vbLabelText   $csharpLabel

Aus dem Code-Snippet können wir sehen, dass wir, um BarcodeReaderOptions zu verwenden, es zuerst initialisieren müssen; danach können wir die Eigenschaften von BarcodeReaderOptions je nach den oben genannten Eigenschaften bestimmen und anpassen. Die initialisierten BarcodeReaderOptions können später als Argument in der Methode BarcodeReader.Read() zusammen mit der Bilddatei verwendet werden. Dies wird alle Einstellungen in BarcodeReaderOptions anwenden, wenn Barcodes aus dem Bild gelesen werden.

Hairil related to Advance Barcode aus Bild lesen
Software-Ingenieur
Wie alle großartigen Ingenieure ist Hairil ein eifriger Lerner. Er verfeinert seine Kenntnisse in C#, Python und Java und nutzt dieses Wissen, um den Teammitgliedern von Iron Software einen Mehrwert zu bieten. Hairil kam von der Universiti Teknologi MARA in Malaysia zum Iron Software-Team, wo er einen Bachelor-Abschluss in Chemie- und Verfahrenstechnik erwarb.