Mit IronBarcode die Lesegeschwindigkeit in C# anpassen

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

IronBarcode bietet vier Lesegeschwindigkeitsoptionen (Faster, Balanced, Detailed, ExtremeDetail), mit denen Sie den Kompromiss zwischen Verarbeitungsgeschwindigkeit und Genauigkeit beim Lesen von Barcodes in C# steuern können. Balanced ist der empfohlene Ausgangspunkt für die meisten Anwendungen.

Einführung

Beim Lesen großer Mengen von Barcodes ist die Genauigkeit von entscheidender Bedeutung, aber auch die Ressourcenzuweisung und die Verarbeitungseffizienz sind wichtige Aspekte. Die Qualität der eingegebenen Bilder bestimmt, wie ein Barcode-Lesegerät sie verarbeiten sollte - ob die Vorverarbeitung für klare Bilder übersprungen oder ressourcenintensivere Optionen verwendet werden, um die Genauigkeit für beeinträchtigte Barcodes zu verbessern.

IronBarcode bietet die Flexibilität, die Verarbeitungsgeschwindigkeit und den Genauigkeitsgrad zu wählen, so dass Sie jeden Aspekt des Barcode-Leseprozesses steuern können. Sie können Entscheidungen auf der Grundlage Ihrer Eingabebilder und der verfügbaren Ressourcen treffen. Für fortgeschrittene Szenarien zum Lesen von Strichcodes lesen Sie bitte unser umfassendes Tutorial zum Lesen von Strichcodes, das verschiedene Formate und Techniken abdeckt.

Dieser Artikel enthält Richtlinien für die Auswahl der optimalen Lesegeschwindigkeit für verschiedene Szenarien. Anhand von QR-Code-Beispielen zeigen wir, wie sich die Änderung der Lesegeschwindigkeit auf die Ergebnisse auswirkt. Wenn Sie speziell mit QR-Codes arbeiten, sehen Sie sich unser C# QR Code Generator Tutorial an, um Testbeispiele zu erstellen.

Schnellstart: Barcode mit ausgewogener Geschwindigkeit lesen

Verwenden Sie IronBarcodes BarcodeReaderOptions, um die Speed-Ebene für Ihren Scan sofort festzulegen. Dieses Beispiel zeigt, wie man Barcodes mithilfe der Einstellung Balanced schnell und zuverlässig einlesen kann.

  1. Installieren Sie IronBarcode mit NuGet Package Manager

    PM > Install-Package BarCode
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced });
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronBarcode in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer


Was sind die verschiedenen Optionen für die Lesegeschwindigkeit?

IronBarcode bietet vier ReadingSpeed Optionen an: Faster, Balanced, Detailed und ExtremeDetail. Wir werden jede Option anhand eines Beispielsatzes untersuchen, der größtenteils degradierte Barcode-Bilder mit einigen klaren Bildern enthält, um die Fähigkeiten der Bibliothek zu demonstrieren. Eine vollständige Liste der unterstützten Formate finden Sie auf unserer Seite Unterstützte Barcode-Formate.

Wir werden eine .NET-Benchmark-Bibliothek verwenden, um die Verarbeitungszeit und den Speicherverbrauch zu messen, um zu zeigen, wie jede Option im Vergleich abschneidet, und um ideale Szenarien für jede Lesegeschwindigkeit zu identifizieren. Wir demonstrieren Benchmarking-Code und eine einfache Methode zum Zählen erfolgreich gelesener degradierter Barcodes. Weitere Einzelheiten zur Konfiguration der Lesegeräteoptionen finden Sie in unserem Beispiel für Barcode-Leser-Einstellungen.

Wann sollte ich die Option "Schnellere Geschwindigkeit" verwenden?

Die Option Faster ermöglicht das schnellste Auslesen von Barcodes mit minimalem Ressourcenaufwand, verringert jedoch die Genauigkeit. Dieser Prozess überspringt die Bildvorverarbeitung und funktioniert am besten, wenn die Eingabebilder bereits scharf und klar sind.

Dieses Beispiel setzt die Eigenschaft Speed auf ReadingSpeed.Faster, importiert ein Verzeichnis von Barcodes und gibt die gefundenen Barcodes mit ihren Werten, Typen und ihrer Anzahl pro Bild aus. Um das Lesen von Barcodes aus verschiedenen Bildformaten besser zu verstehen, lesen Sie unseren Leitfaden zum Lesen von Barcodes aus Bildern.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-faster.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Faster could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
$vbLabelText   $csharpLabel

Die Option Faster erkannte 146 von 430 Barcode-Ergebnissen in 25 Sekunden, was einer Genauigkeit von 33,95 % entspricht. Diese Methode ist zwar schnell, eignet sich aber nur für makellose Bildbedingungen. Wenn Sie mit mehreren BarCodes in einem einzigen Bild arbeiten, sollten Sie unseren Leitfaden zum Lesen mehrerer BarCodes für eine optimale Konfiguration beachten.

Warum ist Balanced die empfohlene Geschwindigkeitsoption?

Die Option Balanced bietet ein ausgewogenes Verhältnis zwischen Genauigkeit und Leseleistung. IronBarcode wendet eine leichte Bildverarbeitung an, um den Barcodebereich zu verdeutlichen, so dass er leichter zu erkennen und zu lesen ist. Diese Einstellung wird für die meisten modernen Bilder empfohlen, da eine leichte Bearbeitung in der Regel genaue Ergebnisse liefert.

Lassen Sie uns anhand derselben Bilder demonstrieren, wie sich Balanced auf die Ausgaberesultate auswirkt. Für asynchrone Operationen lesen Sie bitte unseren Leitfaden zu async und multithreading mit IronBarcode.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-balanced.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Balanced could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
$vbLabelText   $csharpLabel

Die Option Balanced erkannte 237 von 430 Barcode-Ergebnissen in 43 Sekunden. Es bietet eine Genauigkeit von 55,11 % – eine deutliche Verbesserung gegenüber Faster – bei nur geringfügig längerer Bearbeitungszeit. Diese Option hält ein effizientes Gleichgewicht zwischen Speicherplatz und Geschwindigkeit aufrecht, was sie für die meisten Situationen ideal und zum empfohlenen Ausgangspunkt macht. Dieser ausgewogene Ansatz funktioniert besonders gut mit geeigneten Bildvorverarbeitungstechniken.

Wann benötige ich die Option "Detaillierte Geschwindigkeit"?

Wenn Bilder stark verschwommen oder verzerrt sind und Balanced keine klaren Ergebnisse liefern kann, verwenden Sie die Option Detailed. Sie wendet eine mittlere Vorverarbeitung an, um den Barcodebereich zu klären und digitales Rauschen für eine bessere Erkennung zu reduzieren. Für stark beeinträchtigte Bilder lesen Sie bitte unseren Leitfaden zur Bildkorrektur, der verschiedene Vorverarbeitungstechniken behandelt.

Lassen Sie uns die Einstellung Detailed anwenden und deren Auswirkung auf die Ausgabe beobachten.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-detailed.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"Detailed could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
$vbLabelText   $csharpLabel

Die Option Detailed erkannte 237 von 430 Barcode-Ergebnissen in 5 Minuten und 30 Sekunden. Die Erfolgsquote von 55,11 % bei stark degradierten Barcodes beweist ihre Genauigkeit. Aufgrund der erheblich längeren Bearbeitungszeit sollte diese Option jedoch ausschließlich für minderwertige Barcode-Bilder verwendet werden. Wenn Sie mit unvollständigen Barcodes arbeiten, finden Sie in unserem Beispiel für die Behandlung unvollständiger Barcodes zusätzliche Strategien.

Welche Situationen erfordern extreme Detailgeschwindigkeit?

Die Einstellung ExtremeDetail wendet eine intensive Verarbeitung auf Barcode-Bilder an, was die Leseleistung erheblich reduziert. Diese CPU-intensive Option eignet sich am besten für das Scannen mehrerer unklarer oder verschwommener Barcodes in einer Eingabedatei. Verwenden Sie sie als letzten Ausweg, wenn andere Optionen nicht zu den gewünschten Ergebnissen führen. Für hochvolumige Verarbeitungsszenarien sollten Sie das Lesen von Barcodes aus PDF-Dateien erkunden, die oft mehrere Barcodes pro Seite enthalten.

Lassen Sie uns die Einstellung ExtremeDetail anwenden, um ihre Auswirkungen zu beobachten.

:path=/static-assets/barcode/content-code-examples/how-to/reading-speed-option-extreme-detailed.cs
using IronBarCode;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;

var optionsFaster = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.ExtremeDetail
};

// Directory containing PDF files
string folderPath = @"YOUR_FILE_PATH";

// Get all PDF files in the directory
var pdfFiles = Directory.GetFiles(folderPath, "*.jpg");

int countFaster = 0;
var stopwatch = Stopwatch.StartNew();
foreach (var file in pdfFiles)
{
    // Read the barcode
    var results = BarcodeReader.Read(file, optionsFaster);

    if (results.Any())
    {
        Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}");
        foreach (var result in results)
        {
            Console.WriteLine($"  Value: {result.Value}, Type: {result.BarcodeType}");
            countFaster++;
        }
    }
    else
    {
        Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}");
    }
}

stopwatch.Stop();

// Print number of images the barcode reader could decode
Console.WriteLine($"ExtremeDetail could read = {countFaster} out of {pdfFiles.Length} in {stopwatch.ElapsedMilliseconds}ms");
$vbLabelText   $csharpLabel

Die Option ExtremeDetail identifizierte 313 von 430 Barcode-Bildern in etwa 10 Minuten. Obwohl es bei stark degradierten Barcodes eine beeindruckende Genauigkeit von 72,79 % erreicht, ist es aufgrund seines hohen Ressourcenverbrauchs nur als letzte Möglichkeit geeignet. Ziehen Sie eine Vorverarbeitung der Bilder in Betracht, bevor Sie diese Option verwenden.

Wie lassen sich die verschiedenen Geschwindigkeiten vergleichen?

Modus BarCodes gefunden Mittlere Zeit Zeit pro Datei GC Druck Genauigkeitsgewinn
**Schneller** 147/430 (33,95 %) 25 Sekunden 0,058 s Hoch (Gen2: 177K) Grundlegendes
**Balanciert** 237/430 (55,11 %) 43 Sekunden 0,1 s Hoch (Gen2: 151K) +62,32 % gegenüber `Schneller`
**Detailliert** 237/430 (55,11 %) 5.50 Min 0,767 s Sehr hoch (Gen2: 297K) +0% gegenüber `Balanced`
**Extrem detailliert** 313/430 (72,79 %) 10,14 Min. 1,414 s Extrem (Gen2: 4.74M) +32,08 % gegenüber `Detailliert`

Wie wähle ich die richtige Geschwindigkeit für meine Anwendung?

Beginnen Sie anhand der obigen Vergleiche mit der Einstellung Faster und arbeiten Sie sich über Balanced, Detailed und ExtremeDetail vor, um signifikante Unterschiede in der Ausgabe zu ermitteln. In den meisten Fällen reicht Balanced für eine zufriedenstellende Lösung aus. Verwenden Sie Detailed und ExtremeDetail nur für stark verzerrte Bilder.

Obwohl Detailed und ExtremeDetail eine mittlere bzw. starke Verarbeitung erfordern, ist es manchmal effizienter, den Prozess aufzuteilen – Bildfilter manuell vor dem Barcode-Lesen anzuwenden, anstatt einen einzigen Prozess zu verwenden. Weitere Informationen zur Vorverarbeitung von Bildern finden Sie in diesem Leitfaden.

Welche Geschwindigkeitseinstellung passt zu meinem Anwendungsfall?

Entscheidungsbaum für die Auswahl der Abtastgeschwindigkeit auf der Grundlage der Bildqualität, von den Optionen Schneller bis Detailliert+ExtremDetail

Häufig gestellte Fragen

Welche vier Optionen gibt es für die Lesegeschwindigkeit von Barcodes?

IronBarcode bietet vier ReadingSpeed-Optionen an: Faster, Balanced, Detailed und ExtremeDetail. Jede Option bietet ein anderes Gleichgewicht zwischen Verarbeitungsgeschwindigkeit und Genauigkeit, wobei Balanced für die meisten Anwendungen der empfohlene Ausgangspunkt ist.

Wie kann ich die Lesegeschwindigkeit beim Scannen von Barcodes einstellen?

Sie können die Lesegeschwindigkeit mit der Klasse BarcodeReaderOptions in IronBarcode einstellen. Erstellen Sie einfach ein neues BarcodeReaderOptions-Objekt und setzen Sie die Speed-Eigenschaft auf den gewünschten ReadingSpeed-Wert (Faster, Balanced, Detailed oder ExtremeDetail) und übergeben Sie sie dann an die Read-Methode.

Welche Lesegeschwindigkeitsoption sollte ich für meine Anwendung verwenden?

IronBarcode empfiehlt, für die meisten Anwendungen mit der Geschwindigkeitseinstellung "Ausgeglichen" zu beginnen. Wenn Sie über qualitativ hochwertige, klare Barcodebilder verfügen, können Sie den Modus Schneller verwenden. Bei schlechten oder minderwertigen Bildern sollten Sie die Modi Detailed oder ExtremeDetail verwenden, um eine bessere Genauigkeit zu erzielen.

Was ist der Kompromiss zwischen den verschiedenen Optionen für die Lesegeschwindigkeit?

Bei den Lesegeschwindigkeiten von IronBarcode besteht ein Kompromiss zwischen Verarbeitungsgeschwindigkeit und Genauigkeit. Der schnellere Modus verarbeitet Bilder schnell, kann aber Barcodes in Bildern von schlechter Qualität übersehen. Der ExtremeDetail-Modus bietet die höchste Genauigkeit, erfordert aber mehr Verarbeitungszeit und Speicherressourcen.

Kann ich mehrere BarCode-Formate mit unterschiedlichen Geschwindigkeitseinstellungen lesen?

Ja, IronBarcode unterstützt das Lesen verschiedener Barcodeformate einschließlich QR-Codes mit allen Geschwindigkeitseinstellungen. Die Geschwindigkeitseinstellung wirkt sich auf den Verarbeitungsansatz aus, schränkt aber nicht die Arten von Barcodes ein, die Sie lesen können. Besuchen Sie die Seite mit den unterstützten Barcode-Formaten, um eine vollständige Liste zu erhalten.

Wie wirkt sich die Bildqualität darauf aus, welche Lesegeschwindigkeit ich wählen sollte?

Die Bildqualität hat einen direkten Einfluss auf Ihre Geschwindigkeitsauswahl in IronBarcode. Klare, qualitativ hochwertige Barcode-Bilder können mit dem Schnelleren Modus effizient verarbeitet werden. Verschlechterte, verschwommene oder kontrastarme Bilder erfordern die Modi Detailed oder ExtremeDetail, um eine genaue Barcode-Erkennung und -Lesung zu gewährleisten.

Wie sieht der minimale Arbeitsablauf für das Lesen von Barcodes mit Geschwindigkeitsoptionen aus?

Der minimale Arbeitsablauf mit IronBarcode umfasst 5 Schritte: 1) Herunterladen der C#-Bibliothek, 2) Verwenden Sie BarcodeReaderOptions, um die Lesegeschwindigkeit einzustellen, 3) Aufrufen der Read-Methode mit Ihrem Bildpfad, 4) Extrahieren und Drucken von Barcodewerten, 5) Evaluieren von Leistungsabwägungen zwischen verschiedenen Geschwindigkeiten.

Wie kann ich die Auswirkungen unterschiedlicher Lesegeschwindigkeiten auf die Leistung messen?

Die Leistung von IronBarcode bei unterschiedlichen Lesegeschwindigkeiten kann mithilfe von .NET-Benchmark-Bibliotheken gemessen werden, um die Verarbeitungszeit und den Speicherverbrauch zu ermitteln. Dies hilft Ihnen, die optimale Geschwindigkeitseinstellung für Ihren spezifischen Anwendungsfall und Ihre Ressourcenbeschränkungen zu ermitteln.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 2,121,847 | Version: 2026.3 gerade veröffentlicht
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package BarCode
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihre Zeichenkette zu einem BarCode wird.