Lire le code-barres de l'image en C#

Vous cherchez un moyen de lire des codes-barres ou des codes QR à partir d’images par programmation ? Vous êtes développeur et vous avez besoin de créer votre propre application de lecture de codes-barres ? Vous êtes arrivé au bon endroit. Les codes-barres sont essentiels au suivi précis des stocks et de la livraison des produits de la fabrication au point de vente. Nous pouvons facilement détecter, reconnaître et lire différents types de codes-barres et de codes QR dans les applications .NET. Dans cet article, nous allons vous montrer comment lire un code-barres à partir d’une image en C# en suivant quelques étapes simples. Vous pouvez utiliser cet article comme guide étape par étape pour développer des applications de lecture ou de numérisation de codes-barres.

Tout d’abord, nous allons jeter un œil à l’API C# Barcode Reader pour lire les codes-barres disponibles dans l’image d’entrée. Ensuite, nous allons parcourir les étapes de détection, de reconnaissance et d’extraction des données de code-barres de l’image. Vous trouverez des étapes détaillées et des extraits de code. Enfin, nous fournirons des liens utiles pour d’autres améliorations. Alors, commençons!

Les sujets suivants seront abordés dans cet article :

  1. API C# pour lire le code-barres de l’image
  2. Étapes pour lire le code-barres à partir d’une image
  3. Lire le code-barres de Bitmap
  4. Lire le code-barres de l’image à l’aide de Stream
  5. Comment lire un code-barres d’un type spécifique
  6. Lire des codes-barres de plusieurs types à partir d’une image
  7. Détecter et lire des ensembles prédéfinis de symbologies
  8. Détecter et lire plusieurs codes-barres à partir d’une image
  9. Obtenir les coordonnées X et Y du code-barres
  10. Lire le code-barres d’une région spécifique de l’image
  11. Lire le code-barres de plusieurs régions de l’image

API C# pour lire le code-barres à partir de l’image

Pour lire un code-barres à partir d’une image, nous utiliserons l’API Aspose.BarCode for .NET. L’API permet de générer, numériser et lire un large éventail de symbologies de codes à barres. Il permet de rendre les images de codes-barres au format JPEG, TIFF, PNG, BMP et GIF.

L’API fournit la classe BarCodeReader qui permet la reconnaissance de plus de 60 types de codes à barres différents à partir d’images données. La première étape de la détection des codes-barres consiste à spécifier la source d’une image avec des codes-barres. Il peut s’agir d’un fichier, d’un objet bitmap ou d’un flux. Il est alors nécessaire de spécifier les symbologies cibles dans le paramètre DecodeType. Nous pouvons examiner tous les différents types de symbologies prises en charge en spécifiant DecodeType.AllSupportedTypes. La méthode ReadBarCodes() de cette classe renvoie un tableau de codes-barres reconnus. La classe BarCodeResult de l’API stocke les données de code-barres reconnues telles que le type de code-barres, le texte du code, la région et d’autres paramètres.

L’API permet également de spécifier les régions d’une image que le lecteur de code-barres doit lire. Cela peut être accompli à l’aide d’un objet Rectangle .NET et permet d’éviter d’avoir à rechercher des codes-barres dans des zones d’image qui ne contiennent aucun code-barres par défaut.

Veuillez soit télécharger la DLL de l’API ou l’installer à l’aide de NuGet.

PM> Install-Package Aspose.BarCode 

Lire le code-barres d’une image à l’aide de C#

Nous pouvons facilement lire un code-barres à partir d’une image en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe BarCodeReader.
  2. Appelez la méthode readBarCodes() et obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult.
  3. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire un code-barres à partir d’une image en C#.

// Cet exemple de code montre comment lire un code-barres à partir d'un fichier image.
// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// Lire le code-barres et afficher les résultats
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Lire le code-barres d'une image.

Lire le code-barres d’une image en C#.

Lire le code-barres de Bitmap en C#

Nous pouvons facilement lire un code-barres à partir d’une image en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe Bitmap.
  2. Ensuite, créez une instance de la classe BarCodeReader avec l’objet Bitmap.
  3. Appelez la méthode ReadBarCodes() et obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult.
  4. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire un code-barres à partir d’un bitmap en C#.

// Cet exemple de code montre comment lire un code-barres à partir d'un bitmap.
// Charger l'image dans Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader(bmp);

// Lire tous les codes-barres dans la zone prévue
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Lire le code-barres à partir d'une image bitmap en C#.

Lire le code-barres de Bitmap en C#.

Lire le code-barres à partir de l’image à l’aide de Stream en C#

Nous pouvons également charger l’image du code-barres à l’aide d’un flux de fichiers et lire un code-barres en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe FileStream.
  2. Ensuite, créez une instance de la classe BarCodeReader avec l’objet stream.
  3. Appelez la méthode ReadBarCodes() et obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult.
  4. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire un code-barres à partir d’une image à l’aide de Stream en C#.

// Cet exemple de code montre comment lire le code-barres d'une image à l'aide du flux de fichiers.
// Charger l'image
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader(stream);

// Lire tous les codes-barres dans la zone prévue
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

Lire le code-barres d’un type spécifique à partir d’une image en C#

Il est recommandé de sélectionner les symbologies de codes-barres cibles qui seront prises en compte pour la reconnaissance afin de minimiser le temps nécessaire à l’achèvement de la reconnaissance et d’éviter les tentatives de reconnaissance de codes-barres obsolètes.

Nous pouvons spécifier le type de code-barres cible et lire le code-barres à partir d’une image en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe BarCodeReader.
  2. Ensuite, définissez un type de décodage de code-barres, tel que Code39Standard.
  3. Après cela, obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult à l’aide de la méthode ReadBarCodes().
  4. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire un code-barres d’un type spécifique à partir d’une image à l’aide de C#.

// Cet exemple de code montre comment lire le code-barres d'un type de décodage spécifique à partir d'une image.
// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// Lire le code-barres de type Code39Extended
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Reconnaître le code-barres d'un type spécifique à partir d'une image

Reconnaître le code-barres d’un type spécifique à partir d’une image en C#.

Lire le code-barres de plusieurs types à partir d’une image en C#

Nous pouvons également spécifier plusieurs types de codes-barres en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe BarCodeReader.
  2. Ensuite, définissez un type de décodage de code-barres à l’aide de la méthode SetBarCodeReadType().
  3. Après cela, obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult à l’aide de la méthode ReadBarCodes().
  4. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire des codes-barres de plusieurs types à partir d’une image à l’aide de C#.

// Cet exemple de code montre comment lire le code-barres de plusieurs types de décodage à partir d'une image.
// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// Lire les codes-barres
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Lire des codes-barres de plusieurs types à partir d'une image en C#

Lire des codes-barres de plusieurs types à partir d’une image en C#

Nous pouvons également spécifier plusieurs types de décodage dans le constructeur de la classe BarCodeReader, comme indiqué ci-dessous :

BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

Lire un ensemble prédéfini de types de codes à barres à partir d’une image en C#

Nous pouvons lire un ensemble prédéfini de symbologies pour la reconnaissance défini dans la classe DecodeTypes. Nous pouvons définir l’un des ensembles prédéfinis suivants :

  • AllSupportedTypes - tous les types de codes-barres pris en charge
  • Types1D - toutes les symbologies 1D prises en charge
  • Types2D - toutes les symbologies 2D prises en charge
  • PostalTypes - toutes les symbologies postales prises en charge qui sont principalement utilisées par les services postaux
  • MostCommonTypes - un ensemble de normes de codes à barres les plus largement utilisées définies

Nous pouvons spécifier un ensemble prédéfini en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe BarCodeReader.
  2. Ensuite, définissez un type de décodage de code-barres dans le constructeur BarCodeReader ou la méthode SetBarCodeReadType, comme DecodeType.Types2D.
  3. Après cela, obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult à l’aide de la méthode ReadBarCodes().
  4. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire un code-barres à l’aide d’un ensemble prédéfini de symbologies en C#.

// Cet exemple de code montre comment lire un code-barres à l'aide d'un ensemble prédéfini de symbologies.
// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// Lire le code-barres et afficher les résultats
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Lire un ensemble prédéfini de types de codes à barres à partir d'une image en C#

Lire un ensemble prédéfini de types de codes à barres à partir d’une image en C#

Lire plusieurs codes-barres à partir d’une image en C#

Nous pouvons également lire tous les codes-barres disponibles à partir d’une image en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe BarCodeReader.
  2. Ensuite, définissez un type de décodage de code-barres sur ALLSUPPORTEDTYPES.
  3. Après cela, obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult à l’aide de la méthode ReadBarCodes().
  4. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire plusieurs codes-barres à partir d’une image à l’aide de C#.

// Cet exemple de code montre comment lire plusieurs codes-barres à partir d'une image.
// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// Lire tous les types de code-barres disponibles sur l'image d'entrée
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Lire plusieurs codes-barres à partir de l'image.

Lire plusieurs codes-barres à partir d’une image.

Obtenir les coordonnées X et Y du code à barres à l’aide de C#

Nous pouvons lire les coordonnées X et Y du code-barres détecté à partir d’une image en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe BarCodeReader.
  2. Ensuite, obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult à l’aide de la méthode ReadBarCodes().
  3. Ensuite, parcourez les résultats et vérifiez si la région n’est pas nulle.
  4. Après cela, obtenez le tableau Points délimitant la région du code-barres à l’aide de Points.
  5. Enfin, affichez les points X et Y du code-barres.

L’exemple de code suivant montre comment obtenir les points de coordonnées X et Y d’un code-barres à partir d’une image à l’aide de C#.

// Cet exemple de code montre comment lire le point de région X et Y des codes-barres à partir d'une image.
// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// Lire le code-barres
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // Afficher les coordonnées x et y de tous les codes-barres détectés
        Point[] point = result.Region.Points;
        Console.Out.WriteLine("Top left coordinates: X = " + point[0].X + ", Y = " + point[0].Y);
        Console.Out.WriteLine("Bottom left coordinates: X = " + point[1].X + ", Y = " + point[1].Y);
        Console.Out.WriteLine("Bottom right coordinates: X = " + point[2].X + ", Y = " + point[2].Y);
        Console.Out.WriteLine("Top right coordinates: X = " + point[3].X + ", Y = " + point[3].Y);
    }
}
Obtenir les coordonnées X et Y du code-barres

Obtenir les coordonnées X et Y d’un code-barres à partir d’une image.

Lire le code-barres d’une région spécifique de l’image en C#

Nous pouvons lire un code-barres d’une région spécifique ou d’une zone d’une image en suivant les étapes ci-dessous :

  1. Tout d’abord, lisez les données de la mémoire tampon d’un fichier image à l’aide de la méthode Bitmap.
  2. Ensuite, créez une instance de la classe BarCodeReader. Il prend une image, une zone rectangulaire et un type de décodage comme arguments.
  3. Après cela, obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult à l’aide de la méthode ReadBarCodes().
  4. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire un code-barres à partir d’une région spécifique d’une image à l’aide de C#.

// Cet exemple de code montre comment lire le code-barres d'une région spécifique d'une image.
// Charger l'image
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// Créer une instance de la classe BarCodeReader
// et spécifiez une zone pour rechercher le code-barres
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// Lire tous les codes-barres dans la zone prévue
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Lire le code-barres à partir d'une région spécifique de l'image.

Lire les codes-barres d’une région spécifique d’une image dans C#.

Lire le code-barres à partir de plusieurs régions de l’image en C#

Nous pouvons également lire le code-barres de plusieurs régions d’une image en suivant les étapes ci-dessous :

  1. Tout d’abord, chargez une image à l’aide de la classe Bitmap.
  2. Ensuite, définissez des rectangles à l’aide de la classe Rectangle.
  3. Ensuite, créez une instance de la classe BarCodeReader.
  4. Pendant ce temps, appelez SetBarCodeImage() avec un objet image et des rectangles comme arguments.
  5. Définissez éventuellement les types de lecture de code-barres à l’aide de la méthode SetBarCodeReadType().
  6. Après cela, obtenez les résultats de la reconnaissance dans l’objet de classe BarCodeResult à l’aide de la méthode ReadBarCodes().
  7. Enfin, parcourez les résultats et affichez le type et le texte du code-barres.

L’exemple de code suivant montre comment lire un code-barres à partir de plusieurs régions d’une image à l’aide de C#.

// Cet exemple de code montre comment lire le code-barres d'une région spécifique d'une image.
// Charger l'image dans Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// Rectangle d'un code-barres 2D dans l'image source
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// Rectangle du code-barres Code128 dans l'image source
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// Initialiser le lecteur de code-barres
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// Lire tous les codes-barres dans la zone prévue
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Lire le code-barres à partir de plusieurs régions de l'image.

Lire les codes-barres de plusieurs régions d’une image dans C#.

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitations d’évaluation.

Conclusion

Dans cet article, nous avons appris à :

  • Charger le fichier image du code-barres ;
  • Lire les images en tant que bitmap ou en utilisant le flux de fichiers ;
  • reconnaître des codes-barres de différents types à partir d’une image ;
  • lire les coordonnées du code-barres ;
  • détecter et lire plusieurs codes-barres à partir d’une seule image ;
  • détecter et lire les codes-barres d’une zone spécifique d’une image.

Outre la lecture de code-barres à partir d’une image en C#, vous pouvez en savoir plus sur Aspose.BarCode pour l’API .NET à l’aide de documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.

Voir également