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 barcodes 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 complexes prises dans le monde réel. Ce guide vous montre exactement comment implémenter la lecture de BarCodes en C# à l'aide d'exemples pratiques que vous pouvez utiliser immédiatement.

Guide de démarrage rapide : Lire instantanément un BarCode à partir d'un fichier

Cet exemple rapide vous montre à quel point il est facile de se lancer avec IronBarcode. En une seule ligne de code, vous pouvez lire des BARCODES à partir d'un fichier image, sans configuration complexe.

  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 Package Manager NuGet ou en téléchargeant directement la DLL. L'installation via NuGet est l'approche 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 lecture de 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 BarCode en C# ?

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

Code128 barcode ready for scanning - contains text 'https://ironsoftware.com/csharp/barcode/' *Un BarCode Code128 standard qu'IronBarcode peut lire instantanément*
using IronBarCode;
using System;

// Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
BarcodeResults results = BarcodeReader.Read("GetStarted.png");

// Check if any barcodes were detected
if (results != null && results.Co/unt > 0)
{
    // Process each barcode found in the image
    foreach (BarcodeResult result in results)
    {
        // Extract the text value from the barcode
        Console.WriteLine("Barcode detected! Value: " + result.Text);

        // Additional properties available:
        // result.BarcodeType - The format (Code128, QR, etc.)
        // result.BinaryValue - Raw binary data if applicable
        // result.Co/nfidence - Detection confidence score
    }
}
else
{
    Console.WriteLine("No barcodes detected in the image.");
}
using IronBarCode;
using System;

// Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
BarcodeResults results = BarcodeReader.Read("GetStarted.png");

// Check if any barcodes were detected
if (results != null && results.Co/unt > 0)
{
    // Process each barcode found in the image
    foreach (BarcodeResult result in results)
    {
        // Extract the text value from the barcode
        Console.WriteLine("Barcode detected! Value: " + result.Text);

        // Additional properties available:
        // result.BarcodeType - The format (Code128, QR, etc.)
        // result.BinaryValue - Raw binary data if applicable
        // result.Co/nfidence - Detection confidence score
    }
}
else
{
    Console.WriteLine("No barcodes detected in the image.");
}
Imports IronBarCode
Imports System

' Read barcodes from the image file - supports PNG, JPG, BMP, GIF, and more
Dim results As BarcodeResults = BarcodeReader.Read("GetStarted.png")

' Check if any barcodes were detected
If results IsNot Nothing AndAlso results.Count > 0 Then
    ' Process each barcode found in the image
    For Each result As BarcodeResult In results
        ' Extract the text value from the barcode
        Console.WriteLine("Barcode detected! Value: " & result.Text)

        ' Additional properties available:
        ' result.BarcodeType - The format (Code128, QR, etc.)
        ' result.BinaryValue - Raw binary data if applicable
        ' result.Confidence - Detection confidence score
    Next
Else
    Console.WriteLine("No barcodes detected in the image.")
End If
$vbLabelText   $csharpLabel

La méthode BarcodeReader.Read renvoie une collection BarcodeResults contenant tous les BARCODES détectés. Chaque BarcodeResult donne accès à la valeur textuelle du BARCODE, à son type de format, à ses coordonnées de position et à ses données binaires. Cette approche fonctionne parfaitement avec les formats de barcodes courants, notamment Code128, Code39, les codes QR et les codes Data Matrix.

Quelles options permettent de lire des barcodes difficiles à lire ou endommagés ?

Dans la réalité, la lecture de barcodes implique souvent des images imparfaites : angles de prise de vue inclinés, mauvais éclairage ou dommages partiels. Les options avancées d'IronBarcode permettent de relever efficacement ces défis.

using IronBarCode;

// Configure advanced reading options for difficult barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions
{
    // Speed settings: Faster, Balanced, Detailed, ExtremeDetail
    // ExtremeDetail performs deep analysis for challenging images
    Speed = ReadingSpeed.ExtremeDetail,

    // Specify expected formats to improve performance
    // Use bitwise OR (|) to combine multiple formats
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Co/de128,

    // Maximum number of barcodes to find (0 = unlimited)
    MaxParallelThreads = 4,

    // Crop region for faster processing of specific areas
    CropArea = null // Or specify a Rectangle
};

// Apply options when reading
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);

// Process detected barcodes
foreach (var barcode in results)
{
    Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}");
}
using IronBarCode;

// Configure advanced reading options for difficult barcodes
BarcodeReaderOptions options = new BarcodeReaderOptions
{
    // Speed settings: Faster, Balanced, Detailed, ExtremeDetail
    // ExtremeDetail performs deep analysis for challenging images
    Speed = ReadingSpeed.ExtremeDetail,

    // Specify expected formats to improve performance
    // Use bitwise OR (|) to combine multiple formats
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Co/de128,

    // Maximum number of barcodes to find (0 = unlimited)
    MaxParallelThreads = 4,

    // Crop region for faster processing of specific areas
    CropArea = null // Or specify a Rectangle
};

// Apply options when reading
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);

// Process detected barcodes
foreach (var barcode in results)
{
    Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}");
}
Imports IronBarCode

' Configure advanced reading options for difficult barcodes
Dim options As New BarcodeReaderOptions With {
    ' Speed settings: Faster, Balanced, Detailed, ExtremeDetail
    ' ExtremeDetail performs deep analysis for challenging images
    .Speed = ReadingSpeed.ExtremeDetail,

    ' Specify expected formats to improve performance
    ' Use bitwise OR (|) to combine multiple formats
    .ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,

    ' Maximum number of barcodes to find (0 = unlimited)
    .MaxParallelThreads = 4,

    ' Crop region for faster processing of specific areas
    .CropArea = Nothing ' Or specify a Rectangle
}

' Apply options when reading
Dim results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)

' Process detected barcodes
For Each barcode In results
    Console.WriteLine($"Format: {barcode.BarcodeType}, Value: {barcode.Text}")
Next barcode
$vbLabelText   $csharpLabel
QR code rotated 45 degrees demonstrating IronBarcode's rotation handling *Un code QR pivoté qu'IronBarcode lit avec succès à l'aide d'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 :

using IronBarCode;

BarcodeReaderOptions options = new BarcodeReaderOptions
{
    // Apply image processing filters to enhance readability
    ImageFilters = new ImageFilterCollection
    {
        new AdaptiveThresholdFilter(9, 0.01f), // Handles varying lighting
        new ContrastFilter(2.0f),               // Increases contrast
        new SharpenFilter()                     // Reduces blur
    },

    // Automatically rotate to find barcodes at any angle
    AutoRotate = true,

    // Use multiple CPU cores for faster processing
    Multithreaded = true
};

BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);

foreach (var result in results)
{
    Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}");
    Console.WriteLine($"Confidence: {result.Co/nfidence}%");
    Console.WriteLine($"Position: X={result.X}, Y={result.Y}");
}
using IronBarCode;

BarcodeReaderOptions options = new BarcodeReaderOptions
{
    // Apply image processing filters to enhance readability
    ImageFilters = new ImageFilterCollection
    {
        new AdaptiveThresholdFilter(9, 0.01f), // Handles varying lighting
        new ContrastFilter(2.0f),               // Increases contrast
        new SharpenFilter()                     // Reduces blur
    },

    // Automatically rotate to find barcodes at any angle
    AutoRotate = true,

    // Use multiple CPU cores for faster processing
    Multithreaded = true
};

BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);

foreach (var result in results)
{
    Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}");
    Console.WriteLine($"Confidence: {result.Co/nfidence}%");
    Console.WriteLine($"Position: X={result.X}, Y={result.Y}");
}
Imports IronBarCode

Dim options As New BarcodeReaderOptions With {
    .ImageFilters = New ImageFilterCollection From {
        New AdaptiveThresholdFilter(9, 0.01F), ' Handles varying lighting
        New ContrastFilter(2.0F),               ' Increases contrast
        New SharpenFilter()                     ' Reduces blur
    },
    .AutoRotate = True,                         ' Automatically rotate to find barcodes at any angle
    .Multithreaded = True                       ' Use multiple CPU cores for faster processing
}

Dim results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)

For Each result In results
    Console.WriteLine($"Detected {result.BarcodeType}: {result.Text}")
    Console.WriteLine($"Confidence: {result.Confidence}%")
    Console.WriteLine($"Position: X={result.X}, Y={result.Y}")
Next
$vbLabelText   $csharpLabel

Ces fonctionnalités avancées font d'IronBarcode la solution idéale pour la lecture de codes-barres à partir de photos, de caméras de sécurité ou de captures d'écran sur appareils mobiles, où la qualité d'image varie considérablement.

Comment scanner plusieurs BarCodes à partir de documents PDF ?

La lecture des BarCodes au format PDF est essentielle pour le traitement des factures, des étiquettes d'expédition et des documents d'inventaire. IronBarcode lit efficacement tous les BarCodes sur chaque page.

Lecture de barcodes à partir de fichiers PDF

using System;
using IronBarCode;

try
{
    // Scan all pages of a PDF for barcodes
    BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");

    if (results != null && results.Co/unt > 0)
    {
        foreach (var barcode in results)
        {
            // Access barcode data and metadata
            string value = barcode.Text;
            int pageNumber = barcode.PageNumber;
            BarcodeEncoding format = barcode.BarcodeType;
            byte[] binaryData = barcode.BinaryValue;

            // Extract barcode image if needed
            System.Drawing.Bitmap barcodeImage = barcode.BarcodeImage;

            Console.WriteLine($"Found {format} on page {pageNumber}: {value}");
        }
    }
    else
    {
        Console.WriteLine("No barcodes found in the PDF.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading PDF: {ex.Message}");
}
using System;
using IronBarCode;

try
{
    // Scan all pages of a PDF for barcodes
    BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");

    if (results != null && results.Co/unt > 0)
    {
        foreach (var barcode in results)
        {
            // Access barcode data and metadata
            string value = barcode.Text;
            int pageNumber = barcode.PageNumber;
            BarcodeEncoding format = barcode.BarcodeType;
            byte[] binaryData = barcode.BinaryValue;

            // Extract barcode image if needed
            System.Drawing.Bitmap barcodeImage = barcode.BarcodeImage;

            Console.WriteLine($"Found {format} on page {pageNumber}: {value}");
        }
    }
    else
    {
        Console.WriteLine("No barcodes found in the PDF.");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading PDF: {ex.Message}");
}
Imports System
Imports IronBarCode

Try
    ' Scan all pages of a PDF for barcodes
    Dim results As BarcodeResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")

    If results IsNot Nothing AndAlso results.Count > 0 Then
        For Each barcode In results
            ' Access barcode data and metadata
            Dim value As String = barcode.Text
            Dim pageNumber As Integer = barcode.PageNumber
            Dim format As BarcodeEncoding = barcode.BarcodeType
            Dim binaryData As Byte() = barcode.BinaryValue

            ' Extract barcode image if needed
            Dim barcodeImage As System.Drawing.Bitmap = barcode.BarcodeImage

            Console.WriteLine($"Found {format} on page {pageNumber}: {value}")
        Next
    Else
        Console.WriteLine("No barcodes found in the PDF.")
    End If
Catch ex As Exception
    Console.WriteLine($"Error reading PDF: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Plusieurs BarCodes détectés sur les pages PDF affichant la sortie de la console Sortie de console affichant plusieurs BarCodes trouvés sur différentes pages PDF

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

// Read only specific pages to improve performance
BarcodeReaderOptions pdfOptions = new BarcodeReaderOptions
{
    // Scan pages 1-5 only
    PageNumbers = new[] { 1, 2, 3, 4, 5 },

    // PDF-specific settings
    PdfDpi = 300, // Higher DPI for better accuracy
    ReadBehindVectorGraphics = true
};

BarcodeResults results = BarcodeReader.ReadPdf("document.pdf", pdfOptions);
// Read only specific pages to improve performance
BarcodeReaderOptions pdfOptions = new BarcodeReaderOptions
{
    // Scan pages 1-5 only
    PageNumbers = new[] { 1, 2, 3, 4, 5 },

    // PDF-specific settings
    PdfDpi = 300, // Higher DPI for better accuracy
    ReadBehindVectorGraphics = true
};

BarcodeResults results = BarcodeReader.ReadPdf("document.pdf", pdfOptions);
' Read only specific pages to improve performance
Dim pdfOptions As New BarcodeReaderOptions With {
	.PageNumbers = { 1, 2, 3, 4, 5 },
	.PdfDpi = 300,
	.ReadBehindVectorGraphics = True
}

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

Comment puis-je traiter des images TIFF à plusieurs images ?

Les fichiers TIFF multiframes, courants dans les systèmes de numérisation de documents et de télécopie, bénéficient d'une prise en charge aussi complète que les PDF.

Fichier TIFF multiframe contenant plusieurs BarCodes répartis sur plusieurs images Un fichier TIFF multiframe contenant des BarCodes sur différentes images

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");
}
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
Private 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
	If result.BarcodeImage IsNot Nothing Then
		result.BarcodeImage.Save($"barcode_frame_{frameNumber}.png")
	End If
Next result
$vbLabelText   $csharpLabel

Les mêmes BarcodeReaderOptions s'appliquent au traitement des fichiers TIFF, y compris les filtres d'image et les paramètres de rotation. Pour des scénarios détaillés de gestion 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 tire un avantage considérable du traitement parallèle. IronBarcode utilise automatiquement les cœurs de processeur disponibles pour des performances optimales.

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 all documents in parallel
BarcodeResults batchResults = BarcodeReader.Read(documentBatch, batchOptions);

// Group results by source document
var resultsByDocument = batchResults.GroupBy(r => r.Filename);

foreach (var docGroup in resultsByDocument)
{
    Console.WriteLine($"\nDocument: {docGroup.Key}");
    foreach (var barcode in docGroup)
    {
        Console.WriteLine($"  - {barcode.BarcodeType}: {barcode.Text}");
    }
}
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 all documents in parallel
BarcodeResults batchResults = BarcodeReader.Read(documentBatch, batchOptions);

// Group results by source document
var resultsByDocument = batchResults.GroupBy(r => r.Filename);

foreach (var docGroup in resultsByDocument)
{
    Console.WriteLine($"\nDocument: {docGroup.Key}");
    foreach (var barcode in docGroup)
    {
        Console.WriteLine($"  - {barcode.BarcodeType}: {barcode.Text}");
    }
}
Imports Microsoft.VisualBasic
Imports IronBarCode

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

' Configure for batch processing
Private batchOptions As New BarcodeReaderOptions With {
	.Multithreaded = True,
	.MaxParallelThreads = Environment.ProcessorCount,
	.Speed = ReadingSpeed.Balanced,
	.ExpectBarcodeTypes = BarcodeEncoding.All
}

' Process all documents in parallel
Private batchResults As BarcodeResults = BarcodeReader.Read(documentBatch, batchOptions)

' Group results by source document
Private resultsByDocument = batchResults.GroupBy(Function(r) r.Filename)

For Each docGroup In resultsByDocument
	Console.WriteLine($vbLf & "Document: {docGroup.Key}")
	For Each barcode In docGroup
		Console.WriteLine($"  - {barcode.BarcodeType}: {barcode.Text}")
	Next barcode
Next docGroup
$vbLabelText   $csharpLabel

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

Résumé

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

Principales fonctionnalités couvertes :

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

Lectures complémentaires

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

Téléchargements du code source

Testez ces exemples par vous-même :

Prêt à intégrer la lecture de BarCodes dans votre application ? Commencez votre essai gratuit et ajoutez dès aujourd'hui la lecture professionnelle de BarCodes à 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, ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 2,240,258 | Version : 2026.5 just released
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.