Comment générer des formats de données de code-barres en C#

Comment générer des formats de données en C# avec IronBarcode

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

IronBarcode fournit plusieurs formats de sortie à partir de la lecture de codes-barres, notamment BarcodeImage, BarcodeType, BinaryValue, les coordonnées, les dimensions, les numéros de page, l'orientation, ainsi que les propriétés de texte et de valeur. Ces formats permettent de traiter les données de BarCode par programmation pour divers cas d'utilisation.

Au lieu de se contenter de lire le BarCode et de le PRINTER dans la console, IronBarcode offre bien plus. Elle propose plusieurs formats de sortie qui permettent aux utilisateurs de traiter les résultats de lecture. Ces formats incluent des propriétés telles que l'image du BarCode, le type de BarCode, BinaryValue, les coordonnées, la hauteur, la largeur, le numéro de page, le BarCode, l'orientation de la page, text et value.

Les utilisateurs peuvent manipuler ces propriétés plus en détail au sein du programme. Voyons comment utiliser ces propriétés et dans quels cas de figure elles peuvent s'avérer utiles.

Guide de démarrage rapide : Lire la valeur et le type d'un BarCode en une seule ligne

Cet exemple montre comment lire un barcode à partir d'une image à l'aide d'IronBarcode : une ligne pour le charger, puis l'impression immédiate de la valeur et du type du barcode. Idéal pour démarrer rapidement. Pour des exemples plus complets, consultez le guide de démarrage rapide sur les BarCode.

  1. Installez IronBarcode avec le Gestionnaire de Packages NuGet

    PM > Install-Package BarCode
  2. Copiez et exécutez cet extrait de code.

    var result = IronBarCode.BarcodeReader.Read("input.png");
    Console.WriteLine($"Value: {result[0].Value}, Type: {result[0].BarcodeType}");
  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

Quels sont les formats de sortie disponibles et leurs cas d'utilisation ?

BarcodeResult stocke diverses propriétés utiles. Ces propriétés sont répertoriées ci-dessous :

  • BarcodeImage
  • BarcodeType
  • BinaryValue
  • Coordonnées, Height & Width
  • PageNumber
  • Barcode et PageOrientation
  • Text & Value

Chaque propriété remplit des fonctions spécifiques dans les workflows de traitement des BarCodes. Qu'il s'agisse de créer un système de gestion des stocks, un pipeline de traitement de documents ou une application de contrôle qualité, ces formats de données offrent la flexibilité nécessaire pour lire des BARCODES provenant de diverses sources.

Comment puis-je extraire et enregistrer des images de Barcodes ?

Une fois qu'IronBarcode a lu une image, les BarCodes détectés dans l'image sont stockés dans BarcodeResult en tant que propriété BarcodeImage de type AnyBitmap. La propriété BarcodeImage stocke les images de BarCodes trouvées. Les utilisateurs peuvent récupérer cet objet pour traiter l'image plus en détail ou l'enregistrer en tant que copie permanente. Cela offre efficacité et facilité d'utilisation en éliminant le code supplémentaire nécessaire pour extraire les images de Barcodes d'une image.

Consultez l'extrait de code ci-dessous qui illustre un cas d'utilisation possible de ce format de sortie :

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeImage.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Read barcode from PDF file
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Create list for barcodes
List<AnyBitmap> barcodeList = new List<AnyBitmap>();

foreach (BarcodeResult barcode in result)
{
    barcodeList.Add(barcode.BarcodeImage);
}

// Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Collections.Generic

' Read barcode from PDF file
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Create list for barcodes
Private barcodeList As New List(Of AnyBitmap)()

For Each barcode As BarcodeResult In result
	barcodeList.Add(barcode.BarcodeImage)
Next barcode

' Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif")
$vbLabelText   $csharpLabel

L'extrait de code ci-dessus illustre un cas d'utilisation de ce format de sortie. Plus précisément, elle crée une image TIFF multipages à partir des BarCodes détectés dans un document PDF. Tout d'abord, nous scannons ou détectons les BarCodes dans le PDF d'exemple. Ensuite, nous créons une liste de AnyBitmap dans laquelle nous stockons les informations de la propriété BarcodeImage. Enfin, nous utilisons cette liste pour générer un fichier TIFF de plusieurs pages à l'aide de la méthode CreateMultiFrameTiff. Cette technique est particulièrement utile lors du traitement de fichiers GIF et TIFF multipages.

BarcodeImage La propriété de BarcodeResult stocke uniquement les images des BARCODES détectés lors de la lecture, et non l'image d'entrée dans son intégralité.

Comment identifier les différents types de BarCodes par programmation ?

Cette propriété permet de déterminer le type de BarCode présent dans l'image ou le document d'entrée. Toutefois, il existe une contrainte : le type de BarCode présent dans l'image doit être pris en charge et lisible par IronBarcode. Pour en savoir plus sur les types de codes-barres pris en charge par IronBarcode, consultez cet article. De plus, consultez la liste complète des formats de BarCode pris en charge pour vous assurer de la compatibilité avec vos besoins spécifiques.

L'extrait de code ci-dessous montre comment récupérer les valeurs et le type d'un BarCode dans une image en affichant les valeurs sur la console.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeType.cs
using IronBarCode;
using System;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("bc3.png");

// Output barcode type to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value is " + barcode.ToString() + " and the barcode type is " + barcode.BarcodeType);
}
Imports IronBarCode
Imports System

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("bc3.png")

' Output barcode type to console
For Each barcode As BarcodeResult In result
	Console.WriteLine("The barcode value is " & barcode.ToString() & " and the barcode type is " & barcode.BarcodeType)
Next barcode
$vbLabelText   $csharpLabel

À partir de l'extrait de code ci-dessus, nous effectuons la lecture du BARCODE en appelant la méthode BarcodeReader.Read() sur l'image d'entrée. Cela renvoie un objet BarcodeResults qui stocke toutes les données BarcodeResult issues de la lecture de tous les BARCODES disponibles dans l'image. Ensuite, nous parcourons l'objet BarcodeResults pour récupérer BarcodeResult et afficher les BARCODES value et type sur la console. Cette approche fonctionne parfaitement avec divers types de barcodes, y compris des formats spécialisés tels que les barcodes Code 39.

Quand dois-je utiliser la sortie de valeur binaire ?

Using IronBarcode, les utilisateurs peuvent récupérer le tableau d'octets du code-barres value en accédant à la propriété BinaryValue de l'objet BarcodeResult. Cela permet aux utilisateurs de manipuler le BarCode value plus en profondeur dans le programme. La sortie binaire value est particulièrement utile lors du traitement de données chiffrées, de pièces jointes encodées sous forme de BARCODES, ou lors de l'intégration à des systèmes nécessitant un traitement des données au niveau des octets.

L'extrait de code ci-dessous illustre un cas d'utilisation permettant de récupérer le BARCODE value sous forme de données binaires :

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BinaryValue.cs
using IronBarCode;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

int i = 1;
foreach (BarcodeResult barcode in result)
{
    var binaryValue = barcode.BinaryValue;
    var barcodeType = IronBarCode.BarcodeEncoding.QRCode;

    // Create QR code
    GeneratedBarcode generatedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType);

    // Export QR code
    generatedBarcode.SaveAsPng($"qrFromBinary{i}.png");
    i++;
}
Imports IronBarCode

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")

Private i As Integer = 1
For Each barcode As BarcodeResult In result
	Dim binaryValue = barcode.BinaryValue
	Dim barcodeType = IronBarCode.BarcodeEncoding.QRCode

	' Create QR code
	Dim generatedBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType)

	' Export QR code
	generatedBarcode.SaveAsPng($"qrFromBinary{i}.png")
	i += 1
Next barcode
$vbLabelText   $csharpLabel

En observant l'extrait de code ci-dessus, nous avons créé un programme simple qui transforme plusieurs BarCodes contenus dans une image en nouveaux fichiers binaires distincts. Dans un premier temps, nous scannons les barcodes de l'image PNG fournie en exemple. Une fois ces Barcodes détectés, nous les parcourons, accédons à la propriété BinaryValue et l'utilisons pour créer de nouveaux fichiers binaires. Cette technique est particulièrement utile lorsque vous devez lire plusieurs BarCodes et traiter leurs données binaires individuellement.

Comment puis-je accéder à l'emplacement et aux dimensions d'un BarCode ?

Une autre propriété de l'objet BarcodeResult à laquelle les utilisateurs peuvent accéder est celle des coordonnées du BarCode, notamment X1, Y1 et X2, Y2, ainsi que ses Height et Width au sein d'un fichier image ou d'un document. Ces propriétés sont utiles lorsque les utilisateurs ont besoin de récupérer des informations sur l'emplacement et les dimensions du BARCODE. Ces informations spatiales sont cruciales pour les applications nécessitant un positionnement précis, telles que le traitement automatisé de documents, les systèmes de contrôle qualité ou la mise en place de zones de recadrage pour une lecture optimisée des BarCodes.

Illustrons l'emplacement et les dimensions du BARCODE.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-height-width.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Linq;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

AnyBitmap bitmap = AnyBitmap.FromFile("multiple-barcodes.png");

foreach (BarcodeResult barcode in result)
{
    PointF[] barcodePoints = barcode.Points;

    float x1 = barcodePoints.Select(b => b.X).Min();
    float y1 = barcodePoints.Select(b => b.Y).Min();

    Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);

    bitmap = bitmap.Redact(rectangle, Color.Magenta);

    // Save the image
    bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png);
}
Imports System
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System.Linq

' Read barcode from PNG
Private result As BarcodeResults = BarcodeReader.Read("multiple-barcodes.png")

Private bitmap As AnyBitmap = AnyBitmap.FromFile("multiple-barcodes.png")

For Each barcode As BarcodeResult In result
	Dim barcodePoints() As PointF = barcode.Points

	Dim x1 As Single = barcodePoints.Select(Function(b) b.X).Min()
	Dim y1 As Single = barcodePoints.Select(Function(b) b.Y).Min()

'INSTANT VB TODO TASK: There is no VB equivalent to the C# 'null-forgiving operator':
'ORIGINAL LINE: Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);
	Dim rectangle As New Rectangle(CInt(Math.Truncate(x1)), CInt(Math.Truncate(y1)), CInt(barcode.Width), CInt(barcode.Height))

	bitmap = bitmap.Redact(rectangle, Color.Magenta)

	' Save the image
	bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png)
Next barcode
$vbLabelText   $csharpLabel
Three barcode samples (A, B, C) showing different encoded data with similar visual patterns
Three redacted content blocks with illegible text fragments

L'extrait de code ci-dessus extrait plusieurs codes-barres présents dans un fichier image. Pour ce faire, nous utilisons une combinaison de deux bibliothèques, IronBarcode et IronDrawing. Pour obtenir l'objet BarcodeResult et en extraire les propriétés, nous lisons d'abord les BarCodes disponibles dans un fichier image à l'aide de la méthode BarcodeReader.Read(). Parallèlement, le fichier image d'entrée doit être converti en un objet AnyBitmap afin d'appliquer la méthode de masquage à l'image. Une fois que nous avons l'objet BarcodeResults, nous pouvons appliquer une boucle et l'itérer pour obtenir les X1, Y1, Width et Height de chaque BARCODE présent dans l'image et les utiliser dans les propriétés CropRectangle de la méthode AnyBitmap.Redact().

Pourquoi la numérotation des pages est-elle importante pour les documents de plusieurs pages ?

Les utilisateurs peuvent récupérer le numéro de page à laquelle le BarCode a été trouvé. Il s'agit d'une fonctionnalité utile pour les utilisateurs qui travaillent sur un document de plusieurs pages contenant plusieurs BarCodes et qui ont besoin de connaître l'emplacement des BarCodes présents dans le document pour un traitement ultérieur. Cette fonctionnalité est essentielle pour lire des BarCodes à partir de documents PDF ou traiter des documents par lots dans des applications d'Enterprise.

Consultez l'extrait de code ci-dessous :

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-page-number.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page number to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value " + barcode.ToString() + " is found on page number " + barcode.PageNumber);
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Output page number to console
For Each barcode As BarcodeResult In result
	Console.WriteLine("The barcode value " & barcode.ToString() & " is found on page number " & barcode.PageNumber)
Next barcode
$vbLabelText   $csharpLabel

L'extrait de code ci-dessus illustre un cas d'utilisation où les utilisateurs ont besoin que le programme renvoie le value des BarCodes trouvés dans un document PDF de plusieurs pages ainsi que leurs numéros de page respectifs. Le code utilise la méthode BarcodeReader.ReadPdf() pour lire les BarCodes contenus dans un document PDF multipages, ce qui renvoie un objet BarcodeResults stockant chaque BarcodeResult trouvé dans le document. Nous appliquons une boucle et parcourons chaque élément de l'objet pour récupérer le value des BarCodes et le numéro de page où ils ont été trouvés. Outre ce cas d'utilisation, les utilisateurs peuvent utiliser cette propriété pour vérifier si tous les Barcodes d'un document ont été lus.

Veuillez noterLa valeur renvoyée par cette propriété est basée sur 1, ce qui signifie que la première page est toujours 1 et non 0

Comment détecter la rotation d'un BarCode et l'orientation d'une page ?

Using IronBarcode, users can retrieve information on the barcode orientation and page orientation on which the barcode is located. Pour extraire ces deux informations, accédez aux propriétés Rotation et PageOrientation de l'objet BarcodeResult. Rotation renvoie un entier représentant l'angle de rotation du BarCode détecté. Cette fonctionnalité fonctionne en conjonction avec les capacités de correction de l'orientation des images afin de garantir une lecture précise des Barcodes, quel que soit l'angle de numérisation.

Consultez l'extrait de code ci-dessous :

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-orientation.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page orientation and rotation to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.PageOrientation);
    Console.WriteLine(barcode.Rotation);
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("test.pdf")

' Output page orientation and rotation to console
For Each barcode As BarcodeResult In result
	Console.WriteLine(barcode.Value)
	Console.WriteLine(barcode.PageOrientation)
	Console.WriteLine(barcode.Rotation)
Next barcode
$vbLabelText   $csharpLabel

L'extrait de code ci-dessus a été exécuté avec l'exemple de fichier PDF joint afin de démontrer que les utilisateurs peuvent récupérer l'orientation de la page et la rotation du BARCODE en récupérant respectivement pageOrientation et le BARCODE rotation. Cette fonctionnalité est principalement utile à des fins de débogage.

Veuillez noterIronBarcode ne peut lire que les BarCodes présentant des rotations de BarcodeResult.PageOrientation, BarcodeResult.Rotation, 0, 90, 180 et 270 degrés. IronBarcode ne renverra aucune valeur si le BarCode présente une valeur de rotation différente de celles mentionnées. PageOrientation renvoie un objet PageOrientation, qui se compose de Portrait ou Landscape.

Quelle est la différence entre les propriétés de type texte et de type valeur ?

Bien sûr, les principales propriétés que les utilisateurs souhaiteront récupérer lorsqu'ils utilisent IronBarcode sont ses value et text. Ces deux propriétés sont souvent utilisées de manière interchangeable et renvoient le même value. Par ailleurs, les utilisateurs peuvent utiliser la méthode BarcodeResult.ToString() pour obtenir le même résultat. Lorsque vous travaillez avec des applications spécialisées ou que vous exportez des données de BarCode sous forme de flux, ces propriétés offrent des moyens flexibles d'accéder au contenu des BarCode dans le format de votre choix.

L'extrait de code ci-dessous illustre cela :

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-text-value.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("barcodestamped3.pdf");

// Output text value to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.Text);
    Console.WriteLine(barcode.ToString());
}
Imports IronBarCode
Imports System

' Read barcode from PDF
Private result As BarcodeResults = BarcodeReader.ReadPdf("barcodestamped3.pdf")

' Output text value to console
For Each barcode As BarcodeResult In result
	Console.WriteLine(barcode.Value)
	Console.WriteLine(barcode.Text)
	Console.WriteLine(barcode.ToString())
Next barcode
$vbLabelText   $csharpLabel

D'après l'extrait de code ci-dessus, quelques lignes de code suffisent aux utilisateurs pour lire les codes-barres d'une image à l'aide d'IronBarcode. Après avoir parcouru le BarcodeResults renvoyé par la méthode BarcodeReader.Read(), nous affichons sur la console le résultat de l'obtention des propriétés Value et Text, ainsi que l'appel de la méthode BarcodeResult.ToString() pour montrer que toutes ces opérations renvoient le même value.

En résumé, IronBarcode est une API idéale permettant aux utilisateurs d'effectuer de multiples opérations liées aux barcodes, sans se limiter à leur création et à leur décodage. Grâce à la prise en charge de divers formats de données de sortie, les utilisateurs peuvent faire bien plus avec l'objet BarcodeResult renvoyé par IronBarcode.

Questions Fréquemment Posées

Quels sont les formats de sortie pris en charge par la lecture de codes-barres C# ?

IronBarcode fournit plusieurs formats de sortie, notamment BarcodeImage, BarcodeType, BinaryValue, des coordonnées, des dimensions, des numéros de page, une orientation, du texte et des propriétés de valeur. Ces formats permettent un traitement complet des données de codes-barres pour diverses applications .NET.

Comment lire la valeur d'un BarCode en une seule ligne de code ?

Avec IronBarcode, vous pouvez lire un code-barres en une seule ligne en utilisant : var result = IronBarCode.BarcodeReader.Read('input.png') ; Cela vous donne immédiatement accès à la valeur et au type du code-barres grâce à result[0].Value et result[0].BarcodeType.

Quelles sont les propriétés disponibles dans BarcodeResult ?

L'objet BarcodeResult dans IronBarcode contient des propriétés incluant BarcodeImage, BarcodeType, BinaryValue, Coordinates, Height & Width, PageNumber, Barcode, PageOrientation, Text et Value - fournissant des données complètes pour les flux de travail de traitement des codes-barres.

Puis-je extraire et enregistrer des images de codes-barres après la lecture ?

Oui, IronBarcode stocke les codes-barres trouvés en tant qu'objets AnyBitmap dans la propriété BarcodeImage. Vous pouvez récupérer cet objet pour traiter davantage l'image ou l'enregistrer en tant que copie permanente, ce qui élimine la nécessité d'un code supplémentaire pour extraire les images de codes-barres.

Comment accéder aux coordonnées et aux dimensions des codes-barres ?

IronBarcode fournit des données de coordonnées comprenant les positions x et y ainsi que les dimensions de hauteur et de largeur pour chaque code-barres détecté. Ces propriétés sont accessibles via l'objet BarCodeResult pour un suivi précis de l'emplacement du code-barres.

Quelle est la différence entre les propriétés Text et Value ?

Dans IronBarcode, les propriétés Text et Value contiennent le contenu des données du code-barres. Ces propriétés font partie de l'objet BarcodeResult et peuvent être utilisées de manière interchangeable pour récupérer les informations du code-barres décodé.

Puis-je déterminer sur quelle page un code-barres a été trouvé ?

Oui, IronBarcode inclut une propriété PageNumber dans l'objet BarcodeResult, ce qui vous permet d'identifier exactement quelle page d'un document de plusieurs pages ou d'un PDF contenait chaque code-barres détecté.

Comment puis-je identifier le type de code-barres détecté ?

La propriété BarcodeType de l'objet BarcodeResult d'IronBarcode identifie le format de code-barres spécifique détecté (comme le code QR, le code 128, etc.), ce qui permet un traitement spécifique au format dans votre application.

Quelles compétences en programmation sont nécessaires pour implémenter IronBarcode dans un projet ?

Une connaissance de base de la programmation C# est suffisante pour implémenter IronBarcode dans un projet, car il fournit des méthodes simples et une documentation complète pour guider les développeurs.

IronBarcode convient-il aux petits projets ainsi qu'aux grandes applications d'entreprise ?

IronBarcode est conçu pour être évolutif et polyvalent, ce qui le rend approprié pour les petits projets ainsi que pour les grandes applications d'entreprise nécessitant des solutions de codes-barres robustes.

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 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.