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

How to Output Data Formats

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

Au lieu de simplement lire le code-barres et d'imprimer les valeurs dans la console, IronBarcode offre bien plus. Il propose plusieurs formats de sortie qui ouvrent la voie aux utilisateurs pour traiter davantage les résultats lus. Ces formats incluent des propriétés telles que l'image du code-barres, le type de code-barres, BinaryValue, les coordonnées, la hauteur, la largeur, le numéro de page, le code-barres, l'orientation de la page, le texte et la valeur.

Les utilisateurs peuvent manipuler ces propriétés davantage dans le programme. Explorons comment utiliser ces propriétés et les cas d'utilisation où elles peuvent être utiles.

comme-titre:2(Démarrage rapide : Lire la valeur et le type du code-barres en une ligne)

Cet exemple montre à quel point il est facile de lire un code-barres à partir d'une image avec IronBarcode - juste une ligne pour charger, puis imprimer immédiatement la valeur et le type du code-barres. C'est parfait pour débuter rapidement.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    var result = IronBarCode.BarcodeReader.Read("input.png");
    Console.WriteLine($"Value: {result[0].Value}, Type: {result[0].BarcodeType}");
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Flux de travail minimal (5 étapes)

  1. Télécharger la bibliothèque C# pour lire les codes-barres
  2. Préparer le PDF et l'image pour la détection des codes-barres
  3. Accéder au type de code-barres détecté et à l'image
  4. Récupérer les coordonnées x et y du code-barres, ainsi que sa hauteur et sa largeur
  5. Lire le texte et la valeur du code-barres

Formats de sortie et cas d'utilisation

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

  • BarcodeImage
  • BarcodeType
  • BinaryValue
  • Coordonnées, Hauteur et Largeur
  • PageNumber
  • Barcode et PageOrientation
  • Texte et Valeur

Image du code-barres

Une fois qu'IronBarcode effectue un processus de lecture sur une image, les codes-barres trouvés dans l'image seront stockés dans BarcodeResult en tant que propriété BarcodeImage de type AnyBitmap. La propriété BarcodeImage stocke les images de code-barres trouvées. Les utilisateurs peuvent récupérer cet objet pour traiter davantage l'image ou l'enregistrer comme une copie permanente. Cela offre une utilisation efficace et facile en éliminant la nécessité d'écrire du code supplémentaire pour extraire les images de codes-barres d'une image.

Jetons un œil à l'extrait de code ci-dessous qui démontre un cas d'utilisation possible pour 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 l'un des cas d'utilisation pour ce format de sortie. Spécifiquement, il est conçu pour créer une image TIFF multipage à partir de codes-barres détectés dans un document PDF. Premièrement, nous scannons ou détectons les codes-barres dans le PDF d'exemple. Ensuite, nous créons une liste de AnyBitmap où nous stockons les informations à partir de la propriété BarcodeImage. Enfin, nous utilisons cette liste pour générer un TIFF multipage à l'aide de la méthode CreateMultiFrameTiff.

Veuillez noterLa propriété BarcodeImage de BarcodeResult ne stocke que les images des codes-barres trouvées lors de la lecture, et non l'image d'entrée entière elle-même.

Type de code-barres

Cette propriété aide les utilisateurs à déterminer quel type de code-barres est présent dans l'image ou le document d'entrée. Cependant, la limitation de cette fonctionnalité est que le type de code-barres à l'intérieur de l'image doit être ceux qui sont pris en charge et pouvant être lus par IronBarcode. Pour en savoir plus sur les types de codes-barres pris en charge dans IronBarcode, les utilisateurs peuvent se référer à cet article.

L'extrait de code ci-dessous démontre comment les utilisateurs peuvent récupérer les valeurs des codes-barres ainsi que le type de code-barres dans une image en imprimant 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 code-barres en appelant la méthode BarcodeReader.Read() sur l'image d'entrée. Cela retourne un objet BarcodeResults qui stocke tous les BarcodeResult de la lecture de tous les codes-barres disponibles dans l'image. Ensuite, nous itérons à travers l'objet BarcodeResults pour récupérer le BarcodeResult et obtenir la valeur et le type de code-barres imprimés sur la console.

Valeur Binaire

Avec IronBarcode, les utilisateurs peuvent également récupérer le tableau d'octets de la valeur du code-barres en accédant à la propriété BinaryValue de l'objet BarcodeResult. Cela permet aux utilisateurs de manipuler la valeur du code-barres davantage dans le programme.

L'extrait de code ci-dessous démontre un cas d'utilisation de la récupération de la valeur du code-barres en tant que 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 codes-barres dans une image en fichiers encodés en binaire séparés. Initialement, nous scannons les codes-barres dans l'image PNG d'exemple. Une fois que nous avons détecté ces codes-barres, nous les parcourons, accédons à la propriété BinaryValue, puis l'utilisons pour créer de nouveaux fichiers binaires.

Coordonnées du code-barres, Hauteur et Largeur

Une autre propriété de l'objet BarcodeResult que les utilisateurs peuvent accéder est les coordonnées du code-barres, y compris X1, Y1, et X2, Y2, ainsi que sa Hauteur et sa Largeur dans un fichier image ou un document. Ces propriétés s'avèrent très utiles lorsque les utilisateurs ont besoin de récupérer des informations sur l'emplacement et les dimensions du code-barres.

Utilisons une illustration pour mettre en évidence l'emplacement et les dimensions du code-barres.

: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
class="competitors-section__wrapper-even-1">
Exemple d'entrée avant rédaction
Image rédigée

L'extrait de code ci-dessus est utilisé pour rédiger plusieurs codes-barres trouvés dans un fichier image. Pour y parvenir, 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 codes-barres disponibles dans un fichier image à l'aide de la méthode BarcodeReader.Read(). Concurremment, le fichier image d'entrée doit également être converti en objet AnyBitmap pour appliquer la méthode de rédaction à l'image. Une fois que nous avons l'objet BarcodeResults, nous pouvons appliquer une boucle et itérer à travers lui pour obtenir le X1, Y1, Largeur, et Hauteur de chaque code-barres disponible dans l'image et les utiliser dans les propriétés CropRectangle de la méthode AnyBitmap.Redact().

Numéro de page

Les utilisateurs peuvent également récupérer le numéro de page où le code-barres a été trouvé. C'est une fonctionnalité utile pour les utilisateurs qui souhaitent utiliser un document multipage contenant plusieurs codes-barres et ont besoin de connaître la localisation des codes-barres trouvés dans le document pour un traitement ultérieur.

Regardons 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 simple ci-dessus démontre un cas d'utilisation où les utilisateurs ont besoin que le programme retourne la valeur des codes-barres trouvés dans un document PDF multipage et leurs numéros de page respectifs. L'extrait de code ci-dessus utilise la méthode BarcodeReader.ReadPdf() pour lire les codes-barres à l'intérieur d'un document PDF multipage, ce qui retourne un objet BarcodeResults stockant chaque BarcodeResult trouvé dans le document. Nous appliquons une boucle et itérons à travers chaque élément de l'objet pour récupérer la valeur des codes-barres et le numéro de page où les codes-barres ont été trouvés. En dehors de ce cas d'utilisation, les utilisateurs peuvent également utiliser cette propriété pour déboguer si tous les codes-barres dans un document ont pu être lus.

Veuillez noterLa valeur retournée par cette propriété est 1-Based, ce qui signifie que la première page est toujours un et non zéro

Rotation du code-barres et Orientation de la page

Avec IronBarcode, les utilisateurs peuvent également récupérer des informations sur l'orientation du code-barres et l'orientation de la page où le code-barres a été trouvé. Pour extraire ces deux informations, les utilisateurs peuvent accéder aux propriétés Rotation et PageOrientation de l'objet BarcodeResult. Rotation retournera un entier qui représente l'angle de rotation du code-barres trouvé.

Regardons 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 simple ci-dessus a été exécuté avec l'entrée PDF d'exemple jointe pour prouver que les utilisateurs peuvent récupérer l'orientation de la page et la rotation du code-barres en obtenant la valeur de BarcodeResult.PageOrientation et BarcodeResult.Rotation, respectivement. Cette fonctionnalité est principalement utile à des fins de débogage.

Veuillez noterIronBarcode ne peut lire que les codes-barres avec des rotations de 0, 90, 180, et 270 degrés. IronBarcode ne retournera aucune valeur si le code-barres a une valeur de rotation autre que celles mentionnées. PageOrientation retournera un objet PageOrientation, qui se compose de Portrait ou Paysage.

Texte et Valeur

Bien sûr, la principale propriété que les utilisateurs voudront récupérer lors de l'utilisation d'IronBarcode est sa valeur et son texte. Ces deux propriétés sont souvent utilisées de manière interchangeable et renverront la même valeur. En dehors de cela, les utilisateurs peuvent également utiliser la méthode BarcodeResult.ToString() pour obtenir le même résultat. L'extrait de code ci-dessous démontre :

: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

À partir de l'extrait de code ci-dessus, les utilisateurs n’ont besoin que de quelques lignes de code pour lire les codes-barres dans une image à l'aide d'IronBarcode. Après avoir itéré à travers les BarcodeResults retournés par la méthode BarcodeReader.Read(), nous affichons dans la console le résultat de l'obtention des propriétés valeur et texte, ainsi que l'appel de la méthode BarcodeResult.ToString() pour montrer que toutes ces valeurs sont identiques.

En résumé, IronBarcode est une API parfaite pour les utilisateurs souhaitant effectuer de multiples opérations concernant les codes-barres, ne se limitant pas à l'écriture et au décodage des codes-barres. Avec divers formats de données de sortie pris en charge, les utilisateurs peuvent faire bien plus avec l'objet BarcodeResult retourné par IronBarcode.

Questions Fréquemment Posées

Quels formats de données de sortie sont disponibles pour le traitement des codes-barres en .NET C#?

IronBarcode propose plusieurs formats de données de sortie pour le traitement des codes-barres en .NET C#, y compris l'image de code-barres, le type, `BinaryValue`, les coordonnées, la hauteur, la largeur, le numéro de page, l'orientation, le texte et la valeur. Ces formats facilitent diverses opérations liées aux codes-barres.

Comment puis-je capturer et stocker des images de codes-barres en utilisant C#?

Vous pouvez utiliser la propriété `BarcodeImage` dans IronBarcode pour capturer et stocker des images de codes-barres, ce qui est utile pour des tâches telles que la création de fichiers TIFF multi-pages à partir de codes-barres détectés.

Comment identifier le type d'un code-barres dans une image en utilisant C#?

La propriété `BarcodeType` dans IronBarcode vous permet d'identifier le type d'un code-barres présent dans une image. Cela aide à traiter efficacement les types de codes-barres pris en charge.

Comment puis-je convertir les données de code-barres en un tableau d'octets?

En accédant à la propriété `BinaryValue` dans IronBarcode, vous pouvez convertir les données de code-barres en un tableau d'octets, qui peut être utilisé pour une manipulation ou un stockage ultérieur des données.

Comment obtenir les coordonnées et les dimensions d'un code-barres dans une image?

IronBarcode fournit les propriétés de coordonnées, de hauteur et de largeur au sein de l'objet `BarcodeResult`, vous permettant d'obtenir des détails sur l'emplacement et les dimensions d'un code-barres dans une image.

Comment puis-je gérer des documents multi-pages en utilisant des données de code-barres?

Les propriétés `PageNumber` et `PageOrientation` dans IronBarcode aident à gérer les documents multi-pages en identifiant où chaque code-barres est situé et son orientation, aidant ainsi à un traitement efficace des documents.

Quelle est la différence entre les propriétés `text` et `value` pour les codes-barres en C#?

Dans IronBarcode, les propriétés `text` et `value` renvoient la même sortie pour un code-barres. Vous pouvez utiliser la méthode `BarcodeResult.ToString()` pour obtenir des résultats similaires.

Y a-t-il des limitations dans la détection de la rotation des codes-barres avec IronBarcode?

Oui, IronBarcode peut lire des codes-barres tournés à 0, 90, 180 et 270 degrés. Il ne prend pas en charge les autres angles de rotation pour la détection des codes-barres.

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 1,935,276 | Version : 2025.11 vient de sortir