Comment ajuster la vitesse de lecture en C# ; avec IronBarcode
IronBarcode fournit quatre options de vitesse de lecture (Faster, Balanced, Detailed, ExtremeDetail) qui vous permettent de contrôler l'équilibre entre la vitesse de traitement et la précision lors de la lecture de codes-barres en C#, avec Balanced étant le point de départ recommandé pour la plupart des applications.
Introduction
La précision est essentielle lors de la lecture de grands ensembles de BarCode, mais l'allocation des ressources et l'efficacité du traitement sont des considérations tout aussi importantes. La qualité des images d'entrée détermine la manière dont un lecteur de codes-barres doit les traiter - sauter le prétraitement pour les images claires ou utiliser des options plus gourmandes en ressources pour améliorer la précision des codes-barres dégradés.
IronBarcode offre la flexibilité de choisir la vitesse de traitement et le niveau de précision, ce qui permet de contrôler tous les aspects du processus de lecture des codes-barres. Vous pouvez prendre des décisions en fonction des images que vous avez fournies et des ressources disponibles. Pour des scénarios de lecture de codes-barres plus avancés, explorez notre tutoriel complet de lecture de codes-barres qui couvre différents formats et techniques.
Cet article fournit des conseils pour choisir la vitesse de lecture optimale en fonction de différents scénarios. Nous utiliserons des exemples de codes QR pour montrer comment la modification de la vitesse de lecture affecte les résultats. Si vous travaillez spécifiquement avec des codes QR, consultez notre tutoriel C# QR Code Generator pour créer des échantillons de test.
Guide de démarrage rapide : Lire un BarCode à vitesse équilibrée
Utilisez le BarcodeReaderOptions de IronBarcode pour définir instantanément le niveau de Speed pour votre scan. Cet exemple montre comment lire rapidement des codes-barres en utilisant le réglage Balanced pour des résultats rapides et fiables.
-
Installez IronBarcode avec le Gestionnaire de Packages NuGet
-
Copiez et exécutez cet extrait de code.
var results = IronBarCode.BarcodeReader.Read("path/to/image.png", new IronBarCode.BarcodeReaderOptions { Speed = IronBarCode.ReadingSpeed.Balanced }); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Téléchargez la bibliothèque C# pour ajuster la vitesse de lecture
- Utilisez la classe BarcodeReaderOptions pour définir la vitesse de lecture.
- Utilisez la méthode
Readpour extraire les valeurs des codes-barres à partir de différents formats d'image. - Imprimez les valeurs des codes-barres
- Évaluer le compromis de performance entre différentes vitesses de lecture
Quelles sont les différentes options de vitesse de lecture ?
IronBarcode propose quatre options ReadingSpeed : Faster, Balanced, Detailed, et ExtremeDetail. Nous examinerons chaque option à l'aide d'un ensemble d'échantillons qui contient principalement des images de codes-barres dégradées avec quelques images claires pour démontrer les capacités de la bibliothèque. Pour obtenir une liste complète des formats pris en charge, consultez notre page formats de codes-barres pris en charge.
Nous utiliserons une bibliothèque de référence .NET pour mesurer le temps de traitement et l'utilisation de la mémoire, en montrant comment chaque option se compare et en identifiant les scénarios idéaux pour chaque vitesse de lecture. Nous ferons la démonstration d'un code d'analyse comparative et d'une méthode simple pour compter les codes-barres dégradés lus avec succès. Pour plus de détails sur la configuration des options du lecteur, consultez notre exemple des paramètres du lecteur de codes-barres.
Quand dois-je utiliser l'option de vitesse plus rapide?
L'option Faster offre la lecture de code-barres la plus rapide avec des ressources minimales mais réduit la précision. Ce processus ne nécessite pas de prétraitement de l'image et fonctionne mieux lorsque les images d'entrée sont déjà nettes et claires.
Cet exemple définit la propriété Speed sur ReadingSpeed.Faster, importe un répertoire de codes-barres et imprime les codes-barres trouvés avec leurs valeurs, types et décompte par image. Pour mieux comprendre la lecture de codes-barres à partir de différents formats d'images, consultez notre guide sur la lecture de codes-barres à partir d'images.
: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");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq
Dim optionsFaster As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Faster
}
' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"
' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")
Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
' Read the barcode
Dim results = BarcodeReader.Read(file, optionsFaster)
If results.Any() Then
Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
For Each result In results
Console.WriteLine($" Value: {result.Value}, Type: {result.BarcodeType}")
countFaster += 1
Next
Else
Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
End If
Next
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")
L'option Faster a détecté 146 résultats de codes-barres sur 430 en 25 secondes, atteignant une précision de 33,95 %. Bien que rapide, cette méthode ne convient qu'à des conditions d'image irréprochables. Lorsque vous avez affaire à plusieurs BarCodes dans une même image, pensez à notre guide sur la lecture de plusieurs codes-barres pour une configuration optimale.
Pourquoi Balanced est-il l'option de vitesse recommandée ?
L'option Balanced équilibre la précision et les performances de lecture. IronBarcode applique un traitement d'image léger pour clarifier la zone du code-barres, ce qui facilite sa détection et sa lecture. Ce paramètre est recommandé pour la plupart des images modernes, car un traitement léger produit généralement des résultats précis.
Voyons comment les mêmes images démontrent l'effet de Balanced sur les résultats de sortie. Pour les opérations asynchrones, explorez notre guide sur async et le multithreading avec 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");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq
Dim optionsFaster As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Balanced
}
' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"
' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")
Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
' Read the barcode
Dim results = BarcodeReader.Read(file, optionsFaster)
If results.Any() Then
Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
For Each result In results
Console.WriteLine($" Value: {result.Value}, Type: {result.BarcodeType}")
countFaster += 1
Next
Else
Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
End If
Next
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")
L'option Balanced a détecté 237 résultats de codes-barres sur 430 en 43 secondes. Elle offre une précision de 55,11 % — une amélioration significative par rapport à Faster — avec seulement une légère augmentation du temps. Cette option maintient un équilibre efficace entre la mémoire et la vitesse, ce qui la rend idéale pour la plupart des situations et le point de départ recommandé. Cette approche équilibrée fonctionne particulièrement bien avec des techniques de prétraitement d'image appropriées.
Quand ai-je besoin de l'option de vitesse détaillée?
Lorsque les images sont fortement floues ou déformées et que Balanced ne peut pas produire des résultats clairs, utilisez l'option Detailed. Elle applique un prétraitement moyen pour clarifier la zone du code-barres et réduire le bruit numérique pour une meilleure détection. Pour les images fortement dégradées, consultez notre guide de correction d'image qui couvre diverses techniques de prétraitement.
Appliquons le réglage Detailed et observons son effet sur la sortie.
: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");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq
Dim optionsFaster As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Detailed
}
' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"
' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")
Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
' Read the barcode
Dim results = BarcodeReader.Read(file, optionsFaster)
If results.Any() Then
Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
For Each result In results
Console.WriteLine($" Value: {result.Value}, Type: {result.BarcodeType}")
countFaster += 1
Next
Else
Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
End If
Next
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")
L'option Detailed a détecté 237 résultats de codes-barres sur 430 en 5 minutes et 30 secondes. Son taux de réussite de 55,11 % sur des BarCodes fortement dégradés démontre sa précision. Toutefois, l'augmentation significative du temps de traitement signifie que cette option doit être réservée exclusivement aux images de codes-barres dégradées. Lorsque vous travaillez avec des codes-barres imparfaits, consultez notre exemple de manipulation de codes-barres imparfaits pour obtenir des stratégies supplémentaires.
Quelles sont les situations qui requièrent une rapidité d'exécution extrême ?
Le réglage ExtremeDetail applique un traitement lourd aux images de codes-barres, réduisant considérablement les performances de lecture. Cette option gourmande en ressources processeur fonctionne mieux pour scanner plusieurs codes-barres peu clairs ou flous au sein d'un même fichier d'entrée. Utilisez-la en dernier recours lorsque les autres options ne donnent pas les résultats escomptés. Pour les scénarios de traitement de gros volumes, explorez la lecture de codes-barres à partir de fichiers PDF qui contiennent souvent plusieurs codes-barres par page.
Appliquons le réglage ExtremeDetail pour observer son impact.
: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");
Imports IronBarCode
Imports System
Imports System.Diagnostics
Imports System.IO
Imports System.Linq
Dim optionsFaster As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.ExtremeDetail
}
' Directory containing PDF files
Dim folderPath As String = "YOUR_FILE_PATH"
' Get all PDF files in the directory
Dim pdfFiles = Directory.GetFiles(folderPath, "*.jpg")
Dim countFaster As Integer = 0
Dim stopwatch As Stopwatch = Stopwatch.StartNew()
For Each file In pdfFiles
' Read the barcode
Dim results = BarcodeReader.Read(file, optionsFaster)
If results.Any() Then
Console.WriteLine($"Barcode(s) found in: {Path.GetFileName(file)}")
For Each result In results
Console.WriteLine($" Value: {result.Value}, Type: {result.BarcodeType}")
countFaster += 1
Next
Else
Console.WriteLine($"No barcode found in: {Path.GetFileName(file)}")
End If
Next
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")
L'option ExtremeDetail a identifié 313 images de codes-barres sur 430 en environ 10 minutes. Bien qu'il atteigne une précision impressionnante de 72,79 % sur des BarCodes fortement dégradés, sa consommation élevée de ressources ne le rend adapté qu'en dernier recours. Pensez à prétraiter les images avant d'utiliser cette option.
Comment les différentes vitesses se comparent-elles?
| Mode | Codes-barres trouvés | Entre-temps | Temps par fichier | Pression GC | Gain de précision |
|---|---|---|---|---|---|
| Plus vite | 147/430 (33,95%) | 25 s | 0,058 s | Élevée (Gen2 : 177K) | Baseline |
| Equilibré | 237/430 (55,11%) | 43 s | 0,1 s | Élevée (Gen2 : 151K) | +62,32% vs Faster |
| Détaillé | 237/430 (55,11%) | 5 min 50 s | 0,767 s | Très élevé (Gen2 : 297K) | +0% vs Equilibré |
| Détail Extrême | 313/430 (72,79%) | 10,14 min | 1,414 s | Extrême (Gen2 : 4,74 M) | +32.08% vs Détaillé |
Comment choisir la bonne vitesse pour mon application?
Sur la base des comparaisons ci-dessus, commencez par le réglage Faster et progressez à travers Balanced, Detailed, et ExtremeDetail pour identifier les différences significatives de sortie. Pour la plupart des scénarios, Balanced gère tout de manière adéquate. Utilisez Detailed et ExtremeDetail uniquement pour les images fortement déformées. Pour les codes-barres fins ou de mauvaise qualité, combinez votre réglage de vitesse avec MinScanLines = 1 pour augmenter la sensibilité de détection.
Bien que Detailed et ExtremeDetail appliquent un traitement moyen et lourd, il est parfois plus efficace de diviser le processus — appliquez manuellement des filtres d'image avant la lecture de codes-barres plutôt que d'utiliser un processus unique. Pour plus d'informations sur le prétraitement des images, consultez ce guide.
Quel paramètre de vitesse correspond à mon cas d'utilisation ?
Questions Fréquemment Posées
Quelles sont les quatre options de vitesse de lecture des codes-barres disponibles ?
IronBarcode propose quatre options ReadingSpeed (vitesse de lecture) : Faster, Balanced, Detailed et ExtremeDetail. Chaque option offre un équilibre différent entre la vitesse de traitement et la précision, Balanced étant le point de départ recommandé pour la plupart des applications.
Comment régler la vitesse de lecture lors de la numérisation de codes-barres ?
Vous pouvez définir la vitesse de lecture à l'aide de la classe BarcodeReaderOptions d'IronBarcode. Il suffit de créer un nouvel objet BarcodeReaderOptions et de définir la propriété Speed à la valeur ReadingSpeed souhaitée (Faster, Balanced, Detailed, ou ExtremeDetail), puis de la transmettre à la méthode Read.
Quelle option de vitesse de lecture dois-je utiliser pour mon application ?
IronBarcode recommande de commencer avec le paramètre de vitesse Équilibré pour la plupart des applications. Si vous disposez d'images de codes-barres claires et de haute qualité, vous pouvez utiliser le mode Faster. Pour les images dégradées ou de mauvaise qualité, envisagez d'utiliser les modes Detailed ou ExtremeDetail pour une meilleure précision.
Quel est le compromis entre les différentes options de vitesse de lecture ?
Le compromis dans les vitesses de lecture d'IronBarcode se situe entre la vitesse de traitement et la précision. Le mode Faster traite les images rapidement mais peut manquer des codes-barres dans des images de mauvaise qualité. Le mode ExtremeDetail offre la plus grande précision mais nécessite plus de temps de traitement et de ressources mémoire.
Puis-je lire plusieurs formats de codes-barres avec différents paramètres de vitesse ?
Oui, IronBarcode prend en charge la lecture de divers formats de codes-barres, y compris les codes QR, avec tous les paramètres de vitesse. Le paramètre de vitesse affecte l'approche de traitement mais ne limite pas les types de codes-barres que vous pouvez lire. Visitez la page des formats de codes-barres pris en charge pour une liste complète.
Comment la qualité de l'image influe-t-elle sur la vitesse de lecture que je dois choisir ?
La qualité de l'image a un impact direct sur votre sélection de vitesse dans IronBarcode. Les images de codes-barres claires et de haute qualité peuvent être traitées efficacement avec le mode Faster. Les images dégradées, floues ou à faible contraste nécessitent les modes Detailed ou ExtremeDetail pour garantir une détection et une lecture précises des codes-barres.
Quel est le flux de travail minimal pour lire des codes-barres avec des options de vitesse ?
Le flux de travail minimal avec IronBarcode comporte 5 étapes : 1) Télécharger la bibliothèque C#, 2) Utiliser BarcodeReaderOptions pour définir la vitesse de lecture, 3) Appeler la méthode Read avec votre chemin d'accès à l'image, 4) Extraire et imprimer les valeurs du code-barres, 5) Évaluer les compromis de performance entre les différentes vitesses.
Comment mesurer l'impact des différentes vitesses de lecture sur les performances ?
Les performances d'IronBarcode avec différentes vitesses de lecture peuvent être mesurées à l'aide de bibliothèques de benchmark .NET pour suivre le temps de traitement et l'utilisation de la mémoire. Cela vous aide à identifier la vitesse optimale pour votre cas d'utilisation spécifique et vos contraintes de ressources.
Quelles compétences en programmation sont nécessaires pour implémenter IronBarcode dans un projet ?
Une connaissance de base de la programmation C# est suffisante pour implémenter IronBarcode dans un projet, car il fournit des méthodes simples et une documentation complète pour guider les développeurs.
IronBarcode convient-il aux petits projets ainsi qu'aux grandes applications d'entreprise ?
IronBarcode est conçu pour être évolutif et polyvalent, ce qui le rend approprié pour les petits projets ainsi que pour les grandes applications d'entreprise nécessitant des solutions de codes-barres robustes.

