Comment ajuster la vitesse de lecture en C# avec IronBarcode

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

La précision est essentielle pour la scalabilité et la lecture de grandes séries de codes-barres, mais il faut également prendre en compte la manière dont un lecteur de codes-barres alloue ses ressources et son efficacité. En fonction des images d'entrée et de leur qualité, il est vital que les développeurs décident comment un lecteur de codes-barres doit aborder et lire les images, par exemple s'il faut éviter le prétraitement des images si les images sont claires, ou opter pour une option plus gourmande en ressources pour améliorer la précision de lecture du lecteur de codes-barres.

IronBarCode vous offre la flexibilité de choisir la vitesse et la précision du détail de traitement des codes-barres, vous permettant d'affiner et de contrôler chaque aspect du processus. Vous pouvez prendre la décision en fonction des images d'entrée que vous avez et des ressources que vous souhaitez allouer.

L'article ci-dessous est une ligne directrice générale sur la situation la plus optimale pour décider quelle vitesse de lecture utiliser. Nous utiliserons un ensemble d'échantillons de codes QR pour donner des exemples concrets de la manière dont le changement de vitesse de lecture affecte les résultats.

Guide rapide : Lire un code-barres avec vitesse équilibrée

Utilisez les BarcodeReaderOptions de IronBarcode pour définir instantanément le niveau de Speed pour votre analyse. Cet exemple montre comment les développeurs peuvent lire rapidement les codes-barres en utilisant le réglage Balanced pour un résultat rapide et fiable.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronBarcode avec le gestionnaire de packages NuGet

    PM > Install-Package BarCode

  2. Copiez et exécutez cet extrait de code.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced });
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Vitesse de lecture

Dans IronBarCode, les développeurs peuvent définir la ReadingSpeed à quatre options différentes: Faster,Balanced, Detailed, et ExtremeDetail. Nous passerons en revue chacune de ces options, et un ensemble d'échantillons comme référence sur la manière dont la valeur de ReadingSpeed affecte la sortie du processus. L'ensemble d'échantillons contient un mélange d'images de codes-barres dégradées et plus nettes, s'orientant fortement vers les images sévèrement dégradées pour illustrer la fonctionnalité de la bibliothèque.

Nous utiliserons également une bibliothèque de benchmarking .NET populaire pour évaluer les temps et l'utilisation de la mémoire, illustrant comment chaque option se compare aux autres et identifiant les scénarios et situations idéaux pour chaque option de vitesse de lecture. Nous afficherons le code pour le benchmarking avec la bibliothèque, ainsi qu'une méthode plus simple pour déduire le nombre de codes-barres dégradés que IronBarCode pourrait lire.

Option de vitesse plus rapide

La première valeur est Faster. En général, définir la propriété Speed à cette valeur permet la lecture la plus rapide des codes-barres avec un minimum de ressources, mais cela implique un compromis de précision réduite. Le processus sautera le prétraitement des images et est généralement recommandé si l'image elle-même est déjà nette et claire avant d'être introduite dans le processus.

Pour cet exemple, nous avons défini la propriété Speed à ReadingSpeed.Faster, importé le répertoire contenant tous les codes-barres, et imprimé les codes-barres trouvés, avec leur valeur et leur type, et le nombre de codes-barres trouvés dans chaque image.

: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

Le Faster a détecté 146 résultats de codes-barres sur 430 en 25 secondes. Cette option est rapide et peut décoder environ 33,95 % des codes-barres. Bien que rapide, cette méthode convient généralement uniquement aux images dans des conditions optimales.

Option de vitesse équilibrée

La valeur Balanced équilibre la précision et la performance de lecture. Lors de l'application de ce réglage, IronBarcode applique un léger traitement à l'image pour clarifier la zone de code-barres, la faire ressortir pour que le lecteur de codes-barres la détecte et la rendre plus facile à lire. En général, c'est le réglage recommandé pour la plupart des images contemporaines, car le léger traitement devrait suffire à produire des résultats précis.

Utilisons les mêmes images et montrons comment la valeur Balanced affecte les résultats de sortie.

: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

Le Balanced a détecté 237 résultats de codes-barres sur 430 en 43 secondes. Il offre une amélioration de précision de 55,11 % par rapport à l'option Faster, avec seulement une légère augmentation du temps. L'option Balanced maintient un équilibre efficace entre la mémoire et la vitesse, ce qui en fait le choix idéal pour la plupart des situations, et c'est le point de départ recommandé.

Option de vitesse détaillée

Dans les scénarios où les images sont fortement floues ou déformées et les situations où l'option Balanced est incapable de détecter clairement et de produire des résultats, les développeurs peuvent choisir d'utiliser la propriété Detailed pour appliquer un prétraitement moyen aux images afin de clarifier encore plus la zone de code-barres et de nettoyer davantage de bruit numérique pour que le lecteur de codes-barres détecte le code-barres.

Appliquons le réglage Detailed à la propriété Speed cette fois-ci et voyons si cela affecte la sortie globale des images.

: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

Le Detailed a détecté 237 résultats de codes-barres sur 430 en 5 minutes et 30 secondes. Son taux de succès de 55,11 % dans un ensemble de données de codes-barres sévèrement dégradé est un témoignage de sa précision. Cependant, le compromis est significatif, car le temps de processus est augmenté de manière importante. Par conséquent, il est crucial que cette option soit utilisée exclusivement pour les images de codes-barres dégradées.

Option de vitesse de détail extrême

Le dernier réglage de la propriété Speed est ExtremeDetail, qui applique un traitement intensif à l'image du code-barres afin que le lecteur puisse la lire, réduisant généralement les performances de lecture d'IronBarcode. Cette option est idéale pour scanner de grandes quantités de codes-barres dans un seul fichier d'entrée qui est également flou ou peu clair par lots. L'opération est gourmande en ressources CPU et doit être utilisée en dernier recours lorsque les autres options ne produisent pas les résultats souhaités.

Appliquons le réglage ExtremeDetail à la propriété Speed pour voir si cela affecte le résultat.

: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

L'option ExtremeDetail, avec sa capacité à identifier 313 des 430 images de codes-barres, prend en moyenne 10 minutes par exécution. C'est un outil puissant, adapté uniquement en dernier recours pour les options sévèrement dégradées en raison de sa consommation élevée de ressources. Elle peut trouver le plus de codes-barres avec une précision impressionnante de 72,79 % dans un ensemble de données de codes-barres sévèrement dégradés, mais il est tout de même recommandé d'effectuer un prétraitement sur eux avant de les faire passer par le lecteur de codes-barres.

Tableau récapitulatif

Mode Codes-barres trouvés Entre-temps Temps par fichier Pression GC Gain de précision
Faster 147/430 (33,95%) 25 s 0,058 s Élevée (Gen2 : 177K) Ligne de base
Balanced 237/430 (55,11%) 43 s 0,1 s Élevée (Gen2 : 151K) +62,32 % par rapport à Faster
Detailed 237/430 (55,11%) 5 min 50 s 0,767 s Très élevé (Gen2 : 297K) +0 % par rapport à Équilibré
ExtremeDetail 313/430 (72,79%) 10,14 min 1,414 s Extrême (Gen2 : 4,74 M) +32,08 % par rapport à la version détaillée

Choisir la bonne vitesse

Après la brève comparaison ci-dessus et les différents scénarios mentionnés ci-dessus, les développeurs devraient, en général, essayer de la configuration la plus basse Faster et progresser lentement à travers Balanced, Detailed, ExtremeDetail pour voir s'il y a des écarts significatifs entre les sorties. Concernant la scalabilité avec IronBarCode, dans la plupart des scénarios, Balanced suffirait souvent à tout passer en revue, et les développeurs ne devraient utiliser le Detailed, ExtremeDetail, qu'en fonction de la déformation des images. De plus, bien que ces deux options appliquent un traitement moyen et lourd aux images lors de l'utilisation de Detailed et ExtremeDetail, il y a des scénarios où il est plus avantageux de diviser le processus en deux et d'appliquer manuellement des filtres d'image avant de l'insérer dans le lecteur de codes-barres plutôt que d'utiliser un processus unique. Pour plus d'informations sur le traitement des images pour le lecteur de codes-barres, veuillez consulter ceci ici. Pour résumer, voici un bref tableau et un résumé des situations où chaque vitesse variable est appropriée.

Tableau de décision

Sortie

Questions Fréquemment Posées

Quels sont les options de vitesse de lecture dans IronBarcode ?

IronBarcode vous permet d'ajuster la vitesse de lecture pour répondre aux besoins de votre application, en optimisant soit pour un traitement plus rapide soit pour une plus grande précision dans la lecture des codes-barres.

Comment puis-je configurer la vitesse de lecture des codes-barres dans IronBarcode ?

Vous pouvez configurer la vitesse de lecture dans IronBarcode en définissant des paramètres spécifiques dans les réglages du lecteur de codes-barres, vous permettant de prioriser la vitesse ou la précision.

Pourquoi devrais-je ajuster la vitesse de lecture dans IronBarcode ?

Ajuster la vitesse de lecture peut aider à équilibrer performance et précision, ce qui est crucial dans des applications nécessitant soit un traitement à grande vitesse soit une détection précise des codes-barres.

Est-il possible d'obtenir en même temps une haute précision et une vitesse de lecture rapide dans IronBarcode ?

Bien qu'IronBarcode permette un équilibre personnalisable entre vitesse et précision, atteindre la combinaison parfaite peut dépendre du cas d'utilisation spécifique et de la complexité des codes-barres.

Quels facteurs influencent le choix des réglages de vitesse de lecture dans IronBarcode ?

Des facteurs tels que le type de codes-barres à numériser, la qualité des images, et l'environnement d'exploitation peuvent influencer le choix des réglages de vitesse de lecture dans IronBarcode.

Puis-je modifier les réglages de vitesse de lecture dynamiquement dans IronBarcode ?

Oui, vous pouvez ajuster dynamiquement les réglages de vitesse de lecture dans IronBarcode pour vous adapter à différentes conditions et exigences de numérisation.

Comment la vitesse de lecture affecte-t-elle la performance de la numérisation des codes-barres dans IronBarcode ?

Les param\u00e8tres de vitesse de lecture dans IronBarcode affectent la rapidit\u00e9 avec laquelle les codes-barres sont trait\u00e9s, des vitesses plus \u00e9lev\u00e9es pouvant potentiellement r\u00e9duire la pr\u00e9cision et des vitesses plus faibles am\u00e9liorant la pr\u00e9cision.<\/S>

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,979,979 | Version: 2025.11 vient de sortir