Comment lire des codes-barres à partir d'images en C#

How to Read Barcodes From Image Files (JPEG, PNG, GIF, TIFF, SVG, BMP)

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

L'une des principales fonctionnalités d'IronBarcode est sa capacité à lire des codes-barres directement dans plusieurs formats d'image. Les formats d'image suivants sont actuellement pris en charge par IronBarcode :

  • Graphiques vectoriels scalables (SVG)
  • Groupe d'experts en photographie (JPEG)
  • Graphiques réseau portables (PNG)
  • Format d'échange de graphiques (GIF)
  • Format de fichier d'image étiquetée (TIFF)
  • Fichier d'image bitmap (BMP)

This is made possible with the help of our open source library, IronDrawing.

Démarrage rapide : Lire les codes-barres d'une image en quelques secondes

Avec un simple appel à IronBarCode.BarcodeReader.Read(), vous pouvez extraire les données de code-barres directement à partir de formats de fichiers d'image tels que PNG, JPEG, GIF, BMP et TIFF. Commencez instantanément—aucune configuration complexe, juste des résultats instantanés.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    var results = IronBarCode.BarcodeReader.Read("path/to/image.png");
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Flux de travail minimal (5 étapes)

Comment lire des codes-barres à partir d'images en C#
  1. Télécharger la bibliothèque C# pour lire des codes-barres à partir d'image
  2. Utilisez la méthode Read pour lire les valeurs des codes-barres à partir de divers formats d'image
  3. Utilisez la classe BarcodeReaderOptions pour configurer les paramètres de lecture
  4. Spécifiez les régions de code-barres dans l'image avec la propriété CropArea
  5. Spécifiez les types de codes-barres à lire en définissant la propriété ExpectBarcodeTypes

Lire directement les codes-barres à partir des images

Voyons maintenant comment nous pouvons réellement utiliser IronBarcode pour la lecture des codes-barres :

: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 Lire directement les codes-barres à partir des images
Code QR d'essai
Code128intro related to Lire directement les codes-barres à partir des images
Code-barres d'essai

Vous voulez savoir quelles sont les valeurs des codes-barres dans les exemples ? Essayez-le avec l'extrait de code !

Pour utiliser IronBarcode, la première chose à faire est d'installer la bibliothèque IronBarcode via le gestionnaire de packages NuGet de Microsoft Visual Studio dans votre projet, comme indiqué sur l'image ci-dessous. Cela vous permettra d'accéder à la méthode BarcodeReader.Read() d'IronBarcode pour lire directement les images de codes-barres.

IronBarcode offre une simplicité en permettant aux utilisateurs d'utiliser uniquement BarcodeReader.Read() pour lire un fichier image déjà inclus dans le projet en spécifiant la chaîne du nom du fichier ou la chaîne du chemin du fichier comme paramètre pour la méthode. Il est recommandé d'utiliser le littéral de chaîne verbatim, "@" lors de la spécification d'un chemin de fichier dans la méthode pour éviter d'ajouter plusieurs caractères d'échappement "\" dans la chaîne de chemin de fichier.

Attachez la méthode Values() à la fin de l'appel de méthode BarcodeReader.Read() pour obtenir la valeur du code-barres en tant qu'objet System.String[].

Pour afficher le résultat dans la console, vous pouvez utiliser une boucle foreach pour parcourir les valeurs stockées dans le tableau string[] et à l'intérieur du bloc de boucle, appelez la méthode Console.WriteLine() avec la variable itérative comme paramètre.

IronBarcode est capable de lire des formats de codes-barres 1-Dimensionnels (Codabar, Code128, Code39, Code93, EAN13, EAN18, ITF, MSI, UPCA, UPCE) ainsi que des formats de codes-barres 2-Dimensionnels (Aztec, DataMatrix, QRCode) dans divers formats d'image.

Options de réglage du lecteur de codes-barres

Trouvez-vous la lecture de codes-barres trop lente ? Le code-barres est-il trop petit dans l'image, rendant IronBarcode incapable de le lire ? Voulez-vous lire uniquement certaines zones d'une image ? Voulez-vous lire uniquement certains types de codes-barres dans une image avec un mélange de codes-barres ? Voulez-vous améliorer les performances globales de lecture ? Ne vous inquiétez plus !

BarcodeReaderOptions permet aux utilisateurs de modifier ou d'ajuster le comportement du lecteur de codes-barres afin qu'il puisse répondre à tous les problèmes énoncés ci-dessus. Voyons et discutons en détail toutes les propriétés réglables disponibles dans BarcodeReaderOptions une par une.

CropArea

CropArea est une propriété de type IronSoftware.Drawing.CropRectangle disponible dans BarcodeReaderOptions qui permet aux utilisateurs de spécifier la zone dans une image qu'IronBarcode doit lire. Cela aide à améliorer les performances de lecture, car le lecteur de codes-barres ne scanne pas toute l'image pour les codes-barres, et améliore également la précision de lecture car la zone de lecture a été spécifiée.

Pour définir la propriété CropArea, il suffit d'instancier un nouvel objet de type Rectangle et de spécifier les coordonnées du rectangle, la largeur et la longueur du rectangle sous forme d'arguments. L'unité de mesure acceptée est le pixel (px).

// Example of setting CropArea
var cropArea = new IronSoftware.Drawing.Rectangle(x, y, width, height);
// Example of setting CropArea
var cropArea = new IronSoftware.Drawing.Rectangle(x, y, width, height);
' Example of setting CropArea
Dim cropArea = New IronSoftware.Drawing.Rectangle(x, y, width, height)
$vbLabelText   $csharpLabel

ExpectBarcodeTypes

Par défaut, tous les codes-barres pris en charge dans IronBarcode seront scannés dans une image. Cependant, si l'utilisateur sait quels types de codes-barres sont disponibles ou souhaitent être lus dans une image, définir cette propriété pour ne lire que certains types de codes-barres augmentera considérablement les performances et la précision de la lecture, car le lecteur de codes-barres n'a pas besoin de parcourir les collections de codes-barres pour interpréter et lire un code-barres.

Pour utiliser cette propriété, il suffit de définir ExpectBarcodeTypes sur l'un des champs de l'énumération BarcodeEncoding. Voici des exemples de chaque type de code-barres pris en charge par IronBarcode.

Voici une liste des types de codes-barres avec des exemples et des explications fournis précédemment.

ExpectMultipleBarcodes

IronBarcode scannera tous les codes-barres disponibles dans une image par défaut, ce qui inclut le scan de l'ensemble du fichier image et l'ajout des valeurs des codes-barres lues dans le tableau de chaînes. Cependant, si les utilisateurs ne souhaitent pas lire plusieurs codes-barres dans un fichier image, ils peuvent définir cette propriété sur false, ce qui fera que le lecteur de codes-barres arrête le scan dès qu'une valeur de code-barres a été trouvée. Cela améliorera de nouveau la performance et la vitesse de lecture d'IronBarcode.

ImageFilters

L'une des propriétés pouvant être ajoutées dans BarcodeReaderOptions est une collection de filtres d'image. Les filtres d'image sont importants pour la prétraitement de l'image brute fournie à IronBarcode. Pour appliquer des filtres d'image dans BarcodeReaderOptions, les utilisateurs doivent d'abord initier et spécifier la collection ImageFilter à utiliser.

MaxParallelThreads

IronBarcode permet aux utilisateurs d'activer et de régler la quantité d'exécutions de threads parallèles, ce qui améliorera à son tour la vitesse et l'efficacité du processus. Les threads parallèles signifient l'exécution de plusieurs threads simultanément sur différents cœurs de processeur. Le nombre par défaut pour la propriété MaxParallelThread dans IronBarcode est 4. Les utilisateurs peuvent les ajuster en fonction des capacités et du nombre de ressources dont leurs machines disposent.

Multithreaded

Cette propriété permet à IronBarcode de lire plusieurs images en parallèle. Par défaut, Multithreaded est true, donc les multiples threads seront gérés automatiquement pour améliorer les performances pour les tâches de lecture de code-barres par lots.

RemoveFalsePositive

Cette propriété supprime toute lecture faussement positive de codes-barres. Les lectures de codes-barres faussement positives signifient simplement une lecture incorrecte des valeurs de code-barres, mais identifiées comme valides. Cela peut arriver en raison d'erreurs dans le processus de séquençage ou d'erreurs dans l'étiquetage ou la préparation du code-barres. Par conséquent, définir RemoveFalsePositive sur true supprimera les lectures de codes-barres faussement positives, améliorant ainsi la précision de la lecture des codes-barres. Cependant, si les utilisateurs optent pour la performance au détriment de la précision, définir cette propriété sur false pourrait aider. La valeur par défaut pour cette propriété est true.

ScanMode

Définir comment IronBarcode scanne et détecte les codes-barres dans une image.

  • Auto : Lit les codes-barres avec un prétraitement automatique de l'image et les options les plus optimales du lecteur configurées. Recommandé pour de meilleurs résultats et performances.
  • OnlyDetectionModel : Scanne l'image pour les codes-barres et renvoie leurs positions sous forme de tableau de IronSoftware.Drawing.PointF. Ce mode ne lit pas les codes-barres détectés ; il ne fait que renvoyer les positions de chaque code-barres.
  • MachineLearningScan : Scanne l'image pour les codes-barres avec détection par apprentissage automatique et les lit.
  • OnlyBasicScan : Lit les codes-barres sans détection par apprentissage automatique, prétraitement automatique de l'image ou configuration des options du lecteur. Cette option peut être utilisée uniquement avec IronBarCode.Slim.

Vitesse de lecture

Comme son nom l'indique, la propriété Speed permet aux utilisateurs d'optimiser davantage les performances du lecteur IronBarcode. Similaire à la propriété RemoveFalsePositive, ajuster cette propriété améliore les performances au détriment de la précision. Elle accepte l'énumération ReadingSpeed, qui a 4 niveaux comme indiqué ci-dessous :

  • Faster : Active la lecture de code-barres la plus rapide mais réduit la précision. Le processus saute le prétraitement de l'image, entraînant souvent des résultats de codes-barres vides. Utilisez ce réglage uniquement si l'image d'entrée est nette et claire.
  • Balanced : Ce réglage est recommandé pour la propriété Speed. Il établit un équilibre entre précision et performance de lecture en tentant d'appliquer un traitement léger à l'image pour clarifier la zone du code-barres et la faire ressortir pour que le lecteur de codes-barres puisse la détecter. La plupart du temps, ce réglage est suffisant pour qu'IronBarcode puisse lire une image de code-barres et produire un résultat précis.
  • Detailed : Pour les cas où l'utilisation du réglage ReadingSpeed.Balanced n'aboutit pas à produire des valeurs de code-barres à partir de la lecture, les utilisateurs peuvent opter pour ReadingSpeed.Detailed. IronBarcode effectuera un traitement moyen sur l'image pour clarifier la zone du code-barres davantage et plus clairement pour que le lecteur de codes-barres puisse détecter le code-barres. Ce réglage est très utile pour détecter une image de code-barres petite ou moins nette.
  • ExtremeDetail : Ce réglage est le moins recommandé en raison de son processus gourmand en CPU. Un traitement lourd sera effectué sur l'image du code-barres pour que le lecteur puisse lire les codes-barres. Cela réduira considérablement la performance de lecture d'IronBarcode. Il est conseillé aux utilisateurs de faire un prétraitement de l'image / appliquer des filtres sur l'image avant d'opter pour ce réglage.

UseCode39ExtendedMode

Ce réglage permet aux codes-barres de type Code39 d'être lus et interprétés avec le mode étendu dans lequel l'ensemble de caractères ASCII complet sera appliqué. Définir UseCode39ExtendedMode sur true permettra une lecture plus précise des codes-barres Code39.

Lecture avancée des codes-barres à partir d'image

Maintenant que nous avons appris toutes les options réglables par les utilisateurs, que ce soit pour augmenter les performances ou la précision, voyons comment nous pouvons l'appliquer dans notre code. L'extrait de code ci-dessous le démontre.

// Insert actual C# code for advanced barcode reading from images here
// Ensure the necessary options and settings are demonstrated in the example
// Insert actual C# code for advanced barcode reading from images here
// Ensure the necessary options and settings are demonstrated in the example
' Insert actual C# code for advanced barcode reading from images here
' Ensure the necessary options and settings are demonstrated in the example
$vbLabelText   $csharpLabel

D'après l'extrait de code, nous voyons que pour utiliser BarcodeReaderOptions, nous devons d'abord l'initialiser, puis déterminer et ajuster les propriétés de BarcodeReaderOptions selon les propriétés énoncées ci-dessus. Les BarcodeReaderOptions initialisés peuvent ensuite être utilisés comme argument dans la méthode BarcodeReader.Read() avec le fichier image. Cela appliquera tous les réglages dans BarcodeReaderOptions lors de la lecture d'un code-barres dans l'image.

Questions Fréquemment Posées

Comment puis-je lire des codes-barres à partir d'images dans une application .NET ?

Vous pouvez utiliser la méthode BarcodeReader.Read() d'IronBarcode pour lire des codes-barres à partir de fichiers image tels que JPEG, PNG, GIF, TIFF, SVG, et BMP.

Quelles options sont disponibles pour personnaliser la lecture de code-barres dans IronBarcode ?

La classe BarcodeReaderOptions permet de personnaliser la lecture de code-barres en définissant des propriétés comme CropArea, ExpectBarcodeTypes, ImageFilters, MaxParallelThreads, et RemoveFalsePositive.

Comment puis-je améliorer la précision de la lecture des codes-barres dans mon application ?

Améliorer la précision de la lecture des codes-barres peut être réalisé en utilisant la propriété RemoveFalsePositive pour éliminer les faux positifs et en ajustant la vitesse de lecture avec des options comme Detailed ou ExtremeDetail.

Est-il possible d'effectuer une lecture de code-barres multithread en .NET ?

Oui, IronBarcode prend en charge la lecture de code-barres multithread. Vous pouvez activer cela en définissant la propriété Multithreaded à true, ce qui permet la gestion automatique des threads.

Comment spécifier une région d'une image à scanner pour les codes-barres ?

Vous pouvez spécifier une région à l'intérieur d'une image à scanner en définissant la propriété CropArea dans la classe BarcodeReaderOptions d'IronBarcode.

Quels sont les avantages d'utiliser l'apprentissage automatique dans la lecture de codes-barres ?

Utiliser l'apprentissage automatique pour la détection de codes-barres peut améliorer la précision et l'efficacité de la lecture en s'adaptant à diverses conditions d'image et en améliorant les capacités de reconnaissance dans IronBarcode.

Comment puis-je gérer différents formats de codes-barres dans IronBarcode ?

IronBarcode est capable de lire les formats de codes-barres 1D et 2D. Vous pouvez spécifier les types de codes-barres attendus en utilisant la propriété ExpectBarcodeTypes.

Quel est le processus pour installer une bibliothèque de lecture de code-barres dans un projet .NET ?

Pour installer la bibliothèque IronBarcode dans un projet .NET, utilisez le gestionnaire de packages NuGet dans Microsoft Visual Studio pour télécharger et intégrer la bibliothèque.

Quelles options de prétraitement d'image sont disponibles dans IronBarcode ?

IronBarcode fournit des options de prétraitement d'image via la propriété ImageFilters, permettant aux utilisateurs d'améliorer les images avant de lire les codes-barres.

Comment optimiser les performances de lecture des codes-barres pour les fichiers image volumineux ?

Optimisez les performances en définissant MaxParallelThreads pour utiliser plusieurs threads et en ajustant la vitesse de lecture selon vos besoins.

Hairil Hasyimi Bin Omar
Ingénieur logiciel
Comme tous les grands ingénieurs, Hairil est un apprenant avide. Il affine ses connaissances en C#, Python et Java, utilisant ces connaissances pour apporter de la valeur aux membres de l'équipe dans toute Iron Software. Hairil a rejoint l'équipe d'Iron Software depuis l'Université Teknologi MARA en Malaisie, ...
Lire la suite
Prêt à commencer?
Nuget Téléchargements 1,935,276 | Version : 2025.11 vient de sortir