IRONSOFTWAREHOME
UTILISATION DE IRONBARCODE

Construire un lecteur de BarCode en utilisant une webcam en C#

Curtis Chau
Curtis Chau
Updated: 28 juin 2026

Un lecteur de codes-barres utilisant une webcam en C# élimine le besoin de lecteurs de codes-barres physiques en transformant n'importe quelle caméra connectée en un puissant lecteur de codes-barres. Dans cet article, nous vous guiderons pas à pas dans la construction d'un lecteur de codes-barres pour webcam fonctionnant sur console, capable de capturer des images vidéo en direct et de décoder les codes-barres et les codes QR en temps réel, le tout avec seulement quelques lignes de code.

Que vous soyez en train de prototyper un système d'inventaire, de construire une borne d'enregistrement ou simplement curieux de savoir comment fonctionne la lecture des codes-barres, ce guide vous fournit un code source fonctionnel que vous pouvez exécuter immédiatement.

Première étape :
arrow pointer

Une webcam peut-elle remplacer un lecteur de codes-barres dédié ?

Absolument. Toute webcam standard ou tout périphérique de capture vidéo USB connecté à un ordinateur Windows, macOS ou Linux peut servir de lecteur de codes-barres lorsqu'il est associé au logiciel approprié. Le procédé consiste à capturer des images vidéo provenant de la caméra, à convertir chaque image en une image bitmap, puis à transmettre cette image à une bibliothèque de lecture de codes-barres pour le décodage.

Les systèmes de lecture de codes-barres traditionnels utilisant des outils comme le SDK Dynamsoft Barcode Reader ou DirectShow .NET nécessitent souvent de configurer manuellement un graphe de filtres, de mettre en place un graphe de capture et de connecter un pipeline de rappel d'images pour obtenir les images de la caméra. IronBarcode simplifie considérablement cela ; il n'est plus nécessaire de construire une infrastructure complexe de flux vidéo. Vous fournissez les données de l'image, et la classe BarcodeReader s'occupe du reste, prenant en charge tout, des codes-barres standard aux codes QR, à partir d'une seule méthode de lecture .

Comment configurer la caméra et installer les dépendances ?

L'intégration d'images vidéo provenant d'une webcam dans une application console .NET nécessite une bibliothèque d'accès à la caméra. OpenCvSharp4 est un wrapper .NET léger et multiplateforme autour d'OpenCV qui simplifie cette tâche. Combiné à IronBarcode, il vous offre tout le nécessaire pour créer un lecteur de codes-barres en temps réel sans avoir à vous soucier de l'énumération des périphériques de capture vidéo de bas niveau ni de la configuration de la fréquence d'images.

Installez les deux packages via NuGet:

dotnet add package OpenCvSharp4.Windows, OpenCvSharp4.Extensions, BarCode

Une fois ces trois paquets installés, votre projet bénéficiera d'un accès à la caméra via OpenCvSharp et d'un décodage des codes-barres via IronBarcode. Aucune dépendance système supplémentaire ni SDK externe à configurer, il suffit d'installer et c'est parti.

Comment capturer des images vidéo et lire les données des codes-barres en temps réel ?

L'exemple de code suivant crée un lecteur de codes-barres en mode console dans Visual Studio qui ouvre votre webcam par défaut, capture des images en continu et analyse chacune d'elles à la recherche de codes-barres. Lorsqu'un code-barres est détecté, les données sont écrites dans la console et la trame est enregistrée sous forme d'instantané.

using OpenCvSharp;
using OpenCvSharp.Extensions;
using IronBarCode;
using IronSoftware.Drawing;
// Open the default camera (device index 0)
using var capture = new VideoCapture(0);
if (!capture.IsOpened())
{
    Console.WriteLine("No camera found. Check connected devices.");
    return;
}
// Configure the barcode reader for real-time scanning
var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.All,
    Speed = ReadingSpeed.Faster
};
Console.WriteLine("Barcode scanner active. Press 'Q' to quit.");
using var frame = new Mat();
bool scanning = true;
while (scanning)
{
    capture.Read(frame);
    if (frame.Empty())
        continue;
    // Convert the captured frame to a bitmap for barcode processing
    var bitmap = BitmapConverter.ToBitmap(frame);
    var anyBitmap = new AnyBitmap(bitmap);
    // Scan the frame for barcodes
    var results = BarcodeReader.Read(anyBitmap, options);
    foreach (var result in results)
    {
        Console.WriteLine($"Barcode detected: {result.Value}");
        Console.WriteLine($"  Format: {result.BarcodeType}");
        // Save a snapshot of the frame where the barcode was found
        bitmap.Save("barcode_snapshot.png");
        Console.WriteLine("  Snapshot saved to barcode_snapshot.png");
    }
    // Check for quit key
    if (Cv2.WaitKey(1) == 'q')
        scanning = false;
}
Console.WriteLine("Scanner stopped.");

Using Webcam for Barcode Scanning in C#

Construire un lecteur de code-barres à l'aide d'une webcam en C# : Image 1 - Utilisation de notre lecteur de code-barres utilisant une webcam en C#

Ce code utilise des instructions de niveau supérieur pour plus de clarté. L'objet VideoCapture ouvre la première source de caméra connectée et commence à capturer des images en boucle. Chaque image est convertie d'un objet OpenCvSharp Mat en un objet Bitmap, puis encapsulée dans un objet AnyBitmap, le format d'image multiplateforme accepté par la méthode BarcodeReader.Read d'IronBarcode.

L'objet BarcodeReaderOptions contrôle le comportement de la lecture. Le réglage de la vitesse sur ReadingSpeed.Faster optimise la lecture vidéo en temps réel, où des réponses rapides par image sont nécessaires. La propriété ExpectBarcodeTypes est définie sur BarcodeEncoding.All, ce qui signifie que le scanner détectera tous les formats pris en charge, du Code 128 et EAN-13 aux codes Data Matrix et QR. Si votre cas d'utilisation ne concerne qu'un format spécifique, le fait de le restreindre améliorera les performances d'analyse. Pour plus d'informations sur la configuration de ces options, consultez la référence BarcodeReaderOptions .

La boucle foreach parcourt chaque BarcodeResult de la collection renvoyée. La propriété Value contient les données du code-barres décodées, tandis que BarcodeType identifie le format. La méthode renvoie une collection BarcodeResults, ce qui facilite le traitement de plusieurs codes-barres si nécessaire.

Comment optimiser le lecteur de codes-barres pour différents cas d'utilisation ?

La lecture des codes-barres en conditions réelles implique souvent des conditions imparfaites, un éclairage insuffisant, des angles de vue obliques ou des étiquettes endommagées. Les options de lecture d'IronBarcode vous permettent d'équilibrer vitesse et précision en fonction du type de données que vous utilisez.

using IronBarCode;
// Optimized options for scanning QR codes from a camera feed
var qrOptions = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.PDF417,
    Speed = ReadingSpeed.Detailed,
    AutoRotate = true
};
// Decode barcodes from a saved image captured by the webcam
var imageResults = BarcodeReader.Read("barcode_snapshot.png", qrOptions);
foreach (var barcode in imageResults)
{
    Console.WriteLine($"Data: {barcode.Value}");
    Console.WriteLine($"Type: {barcode.BarcodeType}");
    Console.WriteLine($"Page: {barcode.PageNumber}");
}

Résultat de la lecture de différents codes-barres : exemple avec un code QR

Construire un lecteur de code-barres à l'aide d'une webcam en C# : Image 2 - Lecture du code QR avec notre lecteur de code-barres

Le passage à ReadingSpeed.Detailed indique au décodeur d'appliquer une analyse d'image plus approfondie, idéale pour traiter les données d'entrée bruitées ou déformées. L'activation de la rotation automatique permet à IronBarcode de corriger automatiquement les codes-barres pivotés dans l'image, un scénario courant lorsque les utilisateurs tiennent des articles à des angles inhabituels devant la caméra. C'est l'un des domaines où IronBarcode se distingue véritablement en tant que bibliothèque de codes QR et lecteur de codes-barres : son prétraitement d'image intégré gère ces défis sans que vous ayez besoin de connecter des filtres de correction d'image externes.

Vous pouvez également scanner les codes-barres à partir de fichiers image enregistrés , de fichiers PDF et de fichiers TIFF multi-images en utilisant la même API BarcodeReader, ce qui la rend polyvalente bien au-delà des cas d'utilisation d'une webcam. Si vous développez plutôt un scanner basé sur le Web, le guide d'intégration IronBarcode Blazor couvre la numérisation par webcam via un navigateur utilisant l'interopérabilité JavaScript .

Qu'est-ce qui rend cette approche plus simple que les autres ?

De nombreux tutoriels sur les lecteurs de codes-barres pour webcam en C# s'appuient sur des combinaisons de plusieurs bibliothèques, généralement ZXing .NET pour le décodage associé à AForge .NET ou DirectShow .NET pour l'accès à la caméra. Cette approche nécessite la mise en place d'un graphe de filtres pour la capture vidéo, la configuration manuelle des fonctions de rappel d'images pour extraire les images du flux vidéo et la gestion de l'énumération des périphériques via les API Windows de bas niveau. Le kit de développement logiciel (SDK) du lecteur de codes-barres Dynamsoft suit un modèle similaire, nécessitant l'intégration de DirectShow .NET pour accéder à la webcam.

IronBarcode simplifie cette complexité. La logique de lecture des codes-barres réside entièrement dans BarcodeReader.Read, qui accepte un Bitmap, un tableau d'octets, un chemin de fichier ou un Stream. Il n'y a pas de graphe de capture à construire, pas d'expéditeur d'objets ni de câblage d'événements EventArgs pour la capture d'images, il suffit de lui fournir des données d'image et de récupérer les informations du code-barres. Cela signifie moins de code à écrire, moins de dépendances à maintenir et plus de temps consacré aux fonctionnalités qui comptent vraiment dans votre application.

Pour les équipes développant sur .NET Core, .NET Framework ou .NET 8+, IronBarcode offre une prise en charge multiplateforme cohérente sur Windows, macOS, Linux, Docker, Azure et AWS. Explorez l' ensemble des fonctionnalités ou parcourez des exemples de code supplémentaires pour découvrir toutes les possibilités.

Prêt à construire votre propre lecteur de codes-barres ?

Transformer une webcam en lecteur de codes-barres en C# nécessite un minimum de code lorsque vous disposez des outils adéquats. IronBarcode se charge du gros du travail de décodage, des codes-barres standard aux codes QR, tandis qu'OpenCvSharp gère l'accès à la caméra de manière propre. Ensemble, ils créent un scanner facile à construire, facile à étendre et prêt pour la production.

Démarrez un essai gratuit pour le tester avec votre propre projet, ou explorez les options de licence lorsque vous serez prêt à le déployer.

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 et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise