Mit IronBarcode die Lesegeschwindigkeit in C# anpassen

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

Genauigkeit ist entscheidend für die Skalierbarkeit und das Lesen großer Mengen von Barcodes, aber auch wie ein Barcode-Leser seine Ressourcen zuweist und wie effizient er ist, muss berücksichtigt werden. Je nach Eingabebildern und der Bildqualität selbst ist es entscheidend, dass Entwickler entscheiden, wie ein Barcode-Leser die Bilder angehen und lesen sollte, z.B. ob die Bildvorverarbeitung übersprungen werden sollte, wenn die Bilder klar sind, oder eine ressourcenintensivere Option zu bevorzugen, um die Lesegenauigkeit des Barcode-Lesers zu verbessern.

IronBarCode bietet Ihnen die Flexibilität, die Geschwindigkeit und Genauigkeit der Barcode-Verarbeitungsdetails auszuwählen, sodass Sie jeden Aspekt des Prozesses feinabstimmen und kontrollieren können. Sie können die Entscheidung basierend auf den Eingabebildern, die Sie haben, und den Ressourcen, die Sie zuweisen möchten, treffen.

Der unten stehende Artikel wäre eine allgemeine Richtlinie zur optimalen Situation für die Entscheidung, welche Lesegeschwindigkeit zu verwenden ist. Wir würden eine Stichprobe von QR-Codes verwenden, um kurze Beispiele zu geben, wie sich die Änderung der Lesegeschwindigkeit auf die Ergebnisse auswirkt.

Schnellstart: Ein Barcode mit ausgeglichener Geschwindigkeit lesen

Verwenden Sie die BarcodeReaderOptions von IronBarcode, um sofort das Speed-Level für Ihren Scan festzulegen. Dieses Beispiel zeigt, wie Entwickler schnell Barcodes mit der Einstellung Balanced lesen können, um ein schnelles und zuverlässiges Ergebnis zu erzielen.

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", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced });
  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


Lesegeschwindigkeit

Innerhalb von IronBarCode können Entwickler die ReadingSpeed auf vier verschiedene Optionen einstellen: Faster,Balanced, Detailed und ExtremeDetail. Wir werden jede dieser Optionen durchgehen und eine Stichprobe als Benchmark verwenden, um zu sehen, wie der Wert der ReadingSpeed das Ergebnis des Prozesses beeinflusst. Das Stichproben-Set enthält eine Mischung aus degradierten Barcode-Bildern und klareren Bildern und neigt stark zu stark degradierten Bildern, um die Funktionalität der Bibliothek zu veranschaulichen.

Wir werden auch eine beliebte .NET-Benchmark-Bibliothek verwenden, um die Zeiten und den Speicherverbrauch zu vergleichen, zu zeigen, wie jede Option im Vergleich zu den anderen steht und die idealen Szenarien und Situationen für jede Lesegeschwindigkeitsoption zu identifizieren. Wir zeigen den Code für das Benchmarking mit der Bibliothek, und auch eine einfachere Methode, um die Menge an degradierten Barcodes abzuleiten, die IronBarCode lesen könnte.

Schnellere Geschwindigkeitsoption

Der erste Wert ist Faster. Im Allgemeinen aktiviert die Einstellung der Speed-Eigenschaft auf diesen Wert das schnellste Lesen von Barcodes mit minimalen Ressourcen, aber es geht mit einem Kompromiss auf Kosten einer geringeren Genauigkeit einher. Der Prozess würde die Bildvorverarbeitung überspringen und wird im Allgemeinen empfohlen, wenn das Bild selbst bereits scharf und klar ist, bevor es in den Prozess eingegeben wird.

In diesem Beispiel setzen wir die Speed-Eigenschaft auf ReadingSpeed.Faster, importierten das Verzeichnis mit allen Barcodes und drucken die gefundenen Barcodes zusammen mit ihrem Wert und Typ und der Anzahl der aus jedem Bild gefundenen Barcodes aus.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Das Faster erkannte 146 Barcodes von 430 in 25 Sekunden. Diese Option ist schnell und kann etwa 33,95% der Barcodes dekodieren. Obwohl schnell, ist diese Methode im Allgemeinen nur für Bilder mit makellosen Bedingungen geeignet.

Ausgeglichene Geschwindigkeitsoption

Der Balanced-Wert balanciert Genauigkeit und Leseleistung. Bei Anwendung dieser Einstellung wendet IronBarcode eine leichte Verarbeitung auf das Bild an, um den Barcode-Bereich zu klären, ihn hervorzuheben, damit der Barcode-Leser ihn erkennt, und erleichtert das Lesen. Im Allgemeinen ist dies die empfohlene Einstellung für die meisten modernen Bilder, da die leichte Verarbeitung ausreichen sollte, um genaue Ergebnisse zu liefern.

Lassen Sie uns dieselben Bilder verwenden und zeigen, wie sich der Balanced-Wert auf die Ausgabenergebnisse auswirkt.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Das Balanced erkannte 237 Barcodes von 430 in 43 Sekunden. Es bietet eine Genauigkeitsverbesserung von 55,11% im Vergleich zur Faster-Option bei nur geringer Zeitsteigerung. Die Balanced-Option hält ein effizientes Gleichgewicht zwischen Speicher und Geschwindigkeit aufrecht, was sie zur idealen Wahl für die meisten Situationen macht, und ist der empfohlene Ausgangspunkt.

Detaillierte Geschwindigkeitsoption

In Szenarien, in denen die Bilder stark verschwommen oder verzerrt sind und Situationen, in denen die Balanced-Option nicht in der Lage ist, klar zu erkennen und Ergebnisse zu liefern, können Entwickler die Detailed-Eigenschaft verwenden, um mittlere Vorverarbeitung auf die Bilder anzuwenden, um den Barcode-Bereich weiter zu klären und mehr digitales Rauschen zu beseitigen, damit der Barcode-Leser den Barcode erkennt.

Lassen Sie uns die Detailed-Einstellung auf die Speed-Eigenschaft anwenden und sehen, ob sie die Gesamtausgabe der Bilder beeinflusst.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Das Detailed erkannte 237 Barcodes von 430 in 5 Minuten und 30 Sekunden. Seine Erfolgsquote von 55,11% in einem stark degradierten Barcode-Datensatz ist ein Beweis für seine Genauigkeit. Der Kompromiss ist jedoch erheblich, da die Prozesszeit um eine große Marge erhöht ist. Daher ist es wichtig, dass diese Option ausschließlich für degradierte Barcode-Bilder verwendet wird.

ExtremeDetail Geschwindigkeitsoption

Die letzte Einstellung der Speed-Eigenschaft ist ExtremeDetail, die eine starke Verarbeitung auf das Barcode-Bild anwendet, damit der Leser es lesen kann, was im Allgemeinen die Lesegeschwindigkeit von IronBarcode reduziert. Diese Option eignet sich ideal zum Scannen großer Mengen von Barcodes innerhalb einer Eingabedatei, die ebenfalls in Chargen unklar oder verschwommen ist. Der Betrieb ist CPU-intensiv und sollte als letztes Mittel verwendet werden, wenn die anderen Optionen nicht die gewünschten Ergebnisse liefern.

Lassen Sie uns die ExtremeDetail-Einstellung auf die Speed-Eigenschaft anwenden, um zu sehen, ob sie das Ergebnis beeinflusst.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die ExtremeDetail-Option, mit ihrer Fähigkeit, 313 von 430 Barcode-Bildern zu identifizieren, benötigt durchschnittlich 10 Minuten pro Lauf. Es ist ein leistungsstarkes Werkzeug, das nur als letztes Mittel für stark degradierte Optionen aufgrund seines hohen Ressourcenverbrauchs geeignet ist. Es kann die meisten Barcodes mit einer beeindruckenden Genauigkeit von 72,79% in einem Datensatz stark degradierter Barcodes finden, aber es wird dennoch empfohlen, sie vor dem Durchlaufen des Barcode-Finders vorzuverarbeiten.

Zusammenfassungstabelle

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

Die richtige Geschwindigkeit wählen

Nach dem kurzen Vergleich oben und den verschiedenen oben genannten Szenarien sollten Entwickler im Allgemeinen versuchen, von der niedrigsten Einstellung Faster zu beginnen und langsam über Balanced, Detailed, ExtremeDetail voranzukommen, um zu sehen, ob es signifikante Unterschiede zwischen dem Ausgang gibt. In Bezug auf die Skalierbarkeit mit IronBarCode sollte in den meisten Szenarien Balanced mehr als ausreichend sein, um alles durchzugehen, und Entwickler sollten nur die Detailed, ExtremeDetail je nach dem stark verzerrten Erscheinungsbild der Bilder verwenden. Des Weiteren, obwohl beide dieser Optionen eine mittlere und starke Verarbeitung auf Bilder anwenden, wenn Detailed und ExtremeDetail verwendet werden, gibt es Szenarien, in denen es lohnenswerter ist, den Prozess in zwei zu teilen und die Bildfilter manuell anzuwenden, bevor sie in den Barcode-Leser eingelegt werden, anstatt einen einzigen Prozess zu verwenden. Für weitere Informationen zur Verarbeitung von Bildern für den Barcode-Leser, bitte beziehen Sie sich auf diese hier. Als allgemeine Zusammenfassung, hier ist eine kurze Tabelle und Übersicht über die Situationen, in denen jede unterschiedliche Geschwindigkeit angemessen ist.

Entscheidungstabelle

Ausgabe

Häufig gestellte Fragen

Welche Lesegeschwindigkeitsoptionen gibt es in IronBarcode?

IronBarcode ermöglicht es Ihnen, die Lesegeschwindigkeit anzupassen, um den Bedürfnissen Ihrer Anwendung gerecht zu werden, indem entweder die schnellere Verarbeitung oder eine höhere Genauigkeit beim Barcode-Lesen optimiert wird.

Wie kann ich die Lesegeschwindigkeit für Barcodes in IronBarcode konfigurieren?

Sie können die Lesegeschwindigkeit in IronBarcode anpassen, indem Sie spezifische Parameter im Barcode-Leser festlegen, um Geschwindigkeit oder Genauigkeit zu priorisieren.

Warum müsste ich die Lesegeschwindigkeit in IronBarcode anpassen?

Die Anpassung der Lesegeschwindigkeit kann helfen, Leistung und Genauigkeit auszubalancieren, was in Anwendungen entscheidend ist, in denen entweder eine schnelle Verarbeitung oder eine präzise Barcode-Erkennung erforderlich ist.

Ist es möglich, gleichzeitig hohe Genauigkeit und schnelle Lesegeschwindigkeit in IronBarcode zu erreichen?

Während IronBarcode eine anpassbare Balance zwischen Geschwindigkeit und Genauigkeit ermöglicht, kann die perfekte Kombination vom spezifischen Anwendungsfall und der Komplexität des Barcodes abhängen.

Welche Faktoren beeinflussen die Wahl der Lesegeschwindigkeitseinstellungen in IronBarcode?

Faktoren wie die Art der gescannten Barcodes, die Qualität der Bilder und die Betriebsumgebung können die Wahl der Lesegeschwindigkeitseinstellungen in IronBarcode beeinflussen.

Kann ich die Einstellungen der Lesegeschwindigkeit in IronBarcode dynamisch ändern?

Ja, Sie können die Einstellungen der Lesegeschwindigkeit in IronBarcode dynamisch anpassen, um sich an unterschiedliche Scanbedingungen und Anforderungen anzupassen.

Wie beeinflusst die Lesegeschwindigkeit die Leistung des Barcode-Scannens in IronBarcode?

Die Einstellungen der Lesegeschwindigkeit in IronBarcode beeinflussen, wie schnell Barcodes verarbeitet werden, wobei höhere Geschwindigkeiten möglicherweise die Genauigkeit verringern und niedrigere Geschwindigkeiten die Präzision erhöhen.

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 1,979,979 | Version: 2025.11 gerade veröffentlicht