Comment lire des codes-barres en C#

C# Barcode Scanner: Read Barcodes & QR Codes in .NET Applications

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

Besoin de scanner rapidement des codes-barres ou des codes QR dans votre application .NET ? IronBarcode rend la lecture des codes-barres simple et fiable, que vous traitiez des images numériques parfaites ou des photos du monde réel plus complexes. Ce guide vous montre précisément comment implémenter la lecture de codes-barres en C# avec des exemples pratiques que vous pouvez utiliser immédiatement.

Démarrage rapide : Lire un Code-barres à partir d'un Fichier Immédiatement

Ce petit exemple vous montre à quel point il est facile de commencer avec IronBarcode. Une seule ligne de code suffit pour lire les codes-barres à partir d'un fichier image ; aucune configuration complexe n'est requise.

  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/barcode.png");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer

Comment installer IronBarcode dans mon projet .NET ?

IronBarcode s'installe facilement via le gestionnaire de packages NuGet ou en téléchargeant directement la DLL. L'installation via NuGet est la méthode recommandée car elle gère automatiquement les dépendances et les mises à jour.

Install-Package BarCode

Après l'installation, ajoutez using IronBarCode; à vos fichiers C# pour accéder à la fonctionnalité de balayage des codes-barres. Pour obtenir des instructions d'installation détaillées pour différents environnements de développement, consultez notre guide d'installation .

Comment puis-je lire mon premier code-barres en utilisant C# ?

La lecture des codes-barres avec IronBarcode ne nécessite qu'une seule ligne de code. La bibliothèque détecte automatiquement les formats de codes-barres et extrait toutes les données encodées.

Code128 code-barres prêt pour le balayage - contient le texte 'https://ironsoftware.com/csharp/barcode/' *Un code-barres standard Code128 que IronBarcode peut lire instantanément.*
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-3.cs
using IronBarCode;

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Choose which filters are to be applied (in order)
    ImageFilters = new ImageFilterCollection() {
        new AdaptiveThresholdFilter(),
    },

    // Uses machine learning to auto rotate the barcode
    AutoRotate = true,
};

// Read barcode
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
Imports IronBarCode

Private options As New BarcodeReaderOptions() With {
	.ImageFilters = New ImageFilterCollection() From {New AdaptiveThresholdFilter()},
	.AutoRotate = True
}

' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
$vbLabelText   $csharpLabel

La méthode BarcodeReader.Read retourne une collection BarcodeResults contenant tous les codes-barres détectés. Chaque BarcodeResult fournit un accès à la valeur textuelle du code-barres, au type de format, aux coordonnées de position et aux données binaires. Cette approche fonctionne parfaitement avec les formats de codes-barres courants, notamment les codes Code128, Code39, les codes QR et les codes Data Matrix.

Quelles options permettent de lire les codes-barres difficiles à lire ou endommagés ?

La lecture des codes-barres dans le monde réel implique souvent des images imparfaites : angles déformés, mauvais éclairage ou dommages partiels. Les options avancées d'IronBarcode permettent de relever efficacement ces défis.

:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-4.cs
using IronBarCode;
using System;

// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");

// Work with the results
foreach (var pageResult in results)
{
    string Value = pageResult.Value;
    int PageNum = pageResult.PageNumber;
    System.Drawing.Bitmap Img = pageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = pageResult.BarcodeType;
    byte[] Binary = pageResult.BinaryValue;
    Console.WriteLine(pageResult.Value + " on page " + PageNum);
}
Imports IronBarCode
Imports System

' Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
Private results As BarcodeResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")

' Work with the results
For Each pageResult In results
	Dim Value As String = pageResult.Value
	Dim PageNum As Integer = pageResult.PageNumber
	Dim Img As System.Drawing.Bitmap = pageResult.BarcodeImage
	Dim BarcodeType As BarcodeEncoding = pageResult.BarcodeType
	Dim Binary() As Byte = pageResult.BinaryValue
	Console.WriteLine(pageResult.Value & " on page " & PageNum)
Next pageResult
$vbLabelText   $csharpLabel
QR code tourné à 45 degrés démontrant le traitement de rotation d'IronBarcode *Un code QR pivoté qu'IronBarcode lit avec succès grâce aux options avancées*

La propriété ExpectBarcodeTypes améliore considérablement les performances en limitant la recherche à des formats spécifiques. Pour une précision maximale avec les images problématiques, combinez les filtres d'image avec la rotation automatique :

:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-5.cs
using IronBarCode;

// Multi frame TIFF and GIF images can also be scanned
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");

foreach (var pageResult in multiFrameResults)
{
    //...
}
Imports IronBarCode

' Multi frame TIFF and GIF images can also be scanned
Private multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")

For Each pageResult In multiFrameResults
	'...
Next pageResult
$vbLabelText   $csharpLabel

Grâce à ces fonctionnalités avancées, IronBarcode est idéal pour la lecture de codes-barres à partir de photos , de caméras de sécurité ou de captures d'écran d'appareils mobiles, où la qualité d'image varie considérablement.

Comment scanner plusieurs codes-barres à partir de documents PDF ?

La numérisation des codes-barres PDF est essentielle pour le traitement des factures, des étiquettes d'expédition et des documents d'inventaire. IronBarcode lit efficacement tous les codes-barres sur chaque page.

Lecture des codes-barres dans les fichiers PDF

:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-6.cs
using IronBarCode;

// The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
var ListOfDocuments = new[] { "image1.png", "image2.JPG", "image3.pdf" };

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    // Enable multithreading
    Multithreaded = true,
};

BarcodeResults batchResults = BarcodeReader.Read(ListOfDocuments, options);
Imports IronBarCode

' The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
Private ListOfDocuments = { "image1.png", "image2.JPG", "image3.pdf" }

Private options As New BarcodeReaderOptions() With {.Multithreaded = True}

Private batchResults As BarcodeResults = BarcodeReader.Read(ListOfDocuments, options)
$vbLabelText   $csharpLabel

Plusieurs codes-barres détectés sur des pages PDF montrant la sortie console Sortie de la console affichant plusieurs codes-barres trouvés sur différentes pages PDF

Pour des plages de pages spécifiques ou un traitement PDF avancé, utilisez BarcodeReaderOptions :

:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-7.cs
// Read only specific pages to improve performance
PdfBarcodeReaderOptions pdfOptions = new PdfBarcodeReaderOptions
{
    // Scan pages 1-5 only
    PageNumbers = new[] { 1, 2, 3, 4, 5 },

    // PDF-specific settings
    DPI = 300 // Higher DPI for better accuracy
};

BarcodeResults results = BarcodeReader.ReadPdf("document.pdf", pdfOptions);
Imports System

' Read only specific pages to improve performance
Dim pdfOptions As New PdfBarcodeReaderOptions With {
    ' Scan pages 1-5 only
    .PageNumbers = New Integer() {1, 2, 3, 4, 5},

    ' PDF-specific settings
    .DPI = 300 ' Higher DPI for better accuracy
}

Dim results As BarcodeResults = BarcodeReader.ReadPdf("document.pdf", pdfOptions)
$vbLabelText   $csharpLabel

Comment puis-je traiter des images TIFF multiframes ?

Les fichiers TIFF multiframes, courants dans les systèmes de numérisation de documents et de télécopie, bénéficient de la même prise en charge complète que les fichiers PDF.

TIFF multiframe contenant plusieurs codes-barres à travers les cadres Un fichier TIFF multiframe avec des codes-barres sur différentes images

:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-8.cs
using IronBarCode;

// TIFF files are processed similarly to regular images
// Each frame is scanned automatically
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");

foreach (var result in multiFrameResults)
{
    // Access frame-specific information
    int frameNumber = result.PageNumber; // Frame number in TIFF
    string barcodeValue = result.Text;
    
    Console.WriteLine($"Frame {frameNumber}: {barcodeValue}");
    
    // Save individual barcode images if needed
    result.BarcodeImage?.Save($"barcode_frame_{frameNumber}.png");
}
Imports IronBarCode

' TIFF files are processed similarly to regular images
' Each frame is scanned automatically
Dim multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")

For Each result In multiFrameResults
    ' Access frame-specific information
    Dim frameNumber As Integer = result.PageNumber ' Frame number in TIFF
    Dim barcodeValue As String = result.Text

    Console.WriteLine($"Frame {frameNumber}: {barcodeValue}")

    ' Save individual barcode images if needed
    result.BarcodeImage?.Save($"barcode_frame_{frameNumber}.png")
Next
$vbLabelText   $csharpLabel

Le même BarcodeReaderOptions s'applique au traitement TIFF, y compris les filtres d'image et les réglages de rotation. Pour des scénarios détaillés de traitement des fichiers TIFF, consultez nos tutoriels sur le traitement d'images .

Puis-je accélérer le traitement grâce au multithreading ?

Le traitement de plusieurs documents bénéficie considérablement du traitement parallèle. IronBarcode utilise automatiquement les cœurs de processeur disponibles pour des performances optimales.

:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-9.cs
using IronBarCode;

// List of documents to process - mix of formats supported
var documentBatch = new[] 
{ 
    "invoice1.pdf", 
    "shipping_label.png", 
    "inventory_sheet.tiff",
    "product_catalog.pdf"
};

// Configure for batch processing
BarcodeReaderOptions batchOptions = new BarcodeReaderOptions
{
    // Enable parallel processing across documents
    Multithreaded = true,
    
    // Limit threads if needed (0 = use all cores)
    MaxParallelThreads = Environment.ProcessorCount,
    
    // Apply consistent settings to all documents
    Speed = ReadingSpeed.Balanced,
    ExpectBarcodeTypes = BarcodeEncoding.All
};

// Process each document, tracking the source path externally
foreach (var document in documentBatch)
{
    BarcodeResults results = BarcodeReader.Read(document, batchOptions);

    Console.WriteLine($"\nDocument: {document}");
    foreach (var barcode in results)
    {
        Console.WriteLine($"  - {barcode.BarcodeType}: {barcode.Text}");
    }
}
Imports IronBarCode

' List of documents to process - mix of formats supported
Dim documentBatch = New String() {
    "invoice1.pdf",
    "shipping_label.png",
    "inventory_sheet.tiff",
    "product_catalog.pdf"
}

' Configure for batch processing
Dim batchOptions As New BarcodeReaderOptions With {
    ' Enable parallel processing across documents
    .Multithreaded = True,

    ' Limit threads if needed (0 = use all cores)
    .MaxParallelThreads = Environment.ProcessorCount,

    ' Apply consistent settings to all documents
    .Speed = ReadingSpeed.Balanced,
    .ExpectBarcodeTypes = BarcodeEncoding.All
}

' Process each document, tracking the source path externally
For Each document In documentBatch
    Dim results As BarcodeResults = BarcodeReader.Read(document, batchOptions)

    Console.WriteLine(vbCrLf & "Document: " & document)
    For Each barcode In results
        Console.WriteLine($"  - {barcode.BarcodeType}: {barcode.Text}")
    Next
Next
$vbLabelText   $csharpLabel

Cette approche parallèle traite les documents simultanément, réduisant ainsi le temps de numérisation total jusqu'à 75 % sur les systèmes multicœurs. Pour le traitement des codes-barres à l'échelle de l'entreprise, consultez notre guide d'optimisation des performances .

Résumé

IronBarcode transforme la lecture complexe des codes-barres en un code C# simple. Que vous développiez des systèmes d'inventaire, des logiciels de traitement de documents ou des applications mobiles, la bibliothèque gère tout, des codes-barres numériques impeccables aux captures complexes du monde réel.

Principales fonctionnalités couvertes :

  • Lecture de codes-barres monolignes à partir d'images
  • Options avancées pour les codes-barres endommagés ou pivotés
  • Numérisation complète des documents PDF et TIFF
  • Traitement par lots haute performance avec multithreading
  • Prise en charge de tous les principaux formats de codes-barres

Lectures complémentaires

Développez vos capacités de traitement des codes-barres grâce à ces ressources :

Téléchargements du code source

Exécutez vous-même ces exemples :

Prêt à intégrer la lecture de codes-barres dans votre application ? Démarrez votre essai gratuit et ajoutez dès aujourd'hui la lecture professionnelle de codes-barres à votre projet .NET.

Commencez avec IronBarcode maintenant.
green arrow pointer

Questions Fréquemment Posées

Comment puis-je installer une bibliothèque de lecture de codes-barres dans un projet .NET ?

Vous pouvez installer la bibliothèque IronBarcode via le gestionnaire de packages NuGet avec la commande dotnet add package BarCode ou via l'interface NuGet de Visual Studio. Alternativement, téléchargez le DLL pour une installation manuelle.

Quelle est la méthode pour lire un code-barres à partir d'une image en utilisant C# ?

Utilisez la méthode BarcodeReader.Read d'IronBarcode avec une seule ligne de code : var results = BarcodeReader.Read('image.png'); Cette méthode détecte et lit tous les formats de codes-barres présents dans l'image.

Est-il possible de détecter plusieurs codes-barres dans une seule image ou un document ?

Oui, IronBarcode peut automatiquement détecter et lire plusieurs codes-barres dans une image, un PDF ou un TIFF multiframe, renvoyant la valeur, le type et la position de chaque code-barres dans une collection BarcodeResults.

Comment puis-je lire des codes-barres à partir d'un PDF en utilisant C# ?

Utilisez la méthode BarcodeReader.ReadPdf d'IronBarcode pour scanner toutes les pages d'un document PDF : var results = BarcodeReader.ReadPdf('document.pdf'); Chaque résultat comprend le numéro de page où le code-barres a été trouvé.

Que dois-je faire si les images de codes-barres sont floues ou tournées ?

Configurez BarcodeReaderOptions pour gérer les images difficiles en configurant AutoRotate = true et en appliquant des filtres d'image comme SharpenFilter ou AdaptiveThresholdFilter. Utilisez Speed = ExtremeDetail pour une meilleure précision.

Quels formats de code-barres sont pris en charge dans les applications .NET ?

IronBarcode prend en charge tous les principaux formats de codes-barres tels que le QR Code, Code 128, Code 39, EAN-13, UPC-A, Data Matrix, PDF417, et plus. Utilisez BarcodeEncoding.All pour scanner tout format pris en charge.

Comment puis-je améliorer la performance de la lecture de codes-barres dans une application C# ?

Améliorez les performances en spécifiant les types de codes-barres attendus avec ExpectBarcodeTypes, en activant le traitement multithreads, et en choisissant les réglages Speed appropriés. Pour les tâches en lots, utilisez BarcodeReader.Read avec des chemins de fichiers.

Quelle est l'approche recommandée pour gérer les erreurs de lecture de codes-barres ?

Encapsulez la lecture de codes-barres dans des blocs try-catch et vérifiez si les résultats sont nuls ou vides. IronBarcode fournit des messages d'erreur détaillés et une propriété de Confiance pour indiquer la fiabilité de la détection.

Puis-je extraire des images de codes-barres après leur scan ?

Oui, BarcodeResult d'IronBarcode inclut une propriété BarcodeImage qui contient un Bitmap du code-barres détecté, qui peut être enregistré ou traité séparément.

Comment puis-je lire des codes-barres à partir de pages spécifiques dans un document PDF ?

Définissez la propriété PageNumbers dans BarcodeReaderOptions pour spécifier les pages : options.PageNumbers = new[] {1, 2, 3}; Cela optimise les performances en scannant uniquement les pages désignées.

Quels formats d'images sont compatibles avec la lecture de codes-barres dans .NET ?

IronBarcode prend en charge le scan dans des formats tels que PNG, JPEG, BMP, GIF, TIFF (y compris multiframe), et PDF. Vous pouvez charger des images à partir de chemins de fichiers, de flux ou de tableaux d'octets.

Comment puis-je accéder aux données binaires des codes-barres scannés en C# ?

Utilisez la propriété BinaryValue de BarcodeResult pour obtenir des données binaires brutes, particulièrement utiles pour les codes-barres contenant des données non-textuelles telles que des informations compressées ou des protocoles binaires.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 2,317,217 | Version : 2026.7 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package BarCode
exécuter un échantillon regarder votre chaîne devenir un code-barres.