Comment éditer des formats de données
Au lieu de se contenter de lire le code-barres et d'imprimer les valeurs dans la console, IronBarcode offre bien plus. Il fournit plusieurs formats de sortie qui permettent aux utilisateurs de traiter les résultats de la lecture. Ces formats comprennent 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 dans le programme. Voyons comment utiliser ces propriétés et quels sont les cas d'utilisation où elles peuvent être utiles.
Comment éditer des formats de données
- Télécharger la bibliothèque C# pour la lecture des codes-barres
- Préparer le PDF et l'image pour la détection des codes-barres
- Accéder au type de code-barres et à l'image détectés
- Récupérer les coordonnées x et y du code-barres, ainsi que sa hauteur et sa largeur
- Lire le texte et la valeur du code-barres
Commencer avec IronBarcode
Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit.
Formats de sortie et cas d'utilisation
BarcodeResult
contient plusieurs propriétés utiles. Ces propriétés sont énumérées ci-dessous :
BarcodeImage
BarcodeType
BinaryValue
- Coordonnées, hauteur et largeur
Numéro de page
Barcode
etPageOrientation
- Texte et valeur
Image de code-barres
Une fois qu'IronBarcode a effectué le 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 codes-barres trouvées. Les utilisateurs peuvent récupérer cet objet pour poursuivre le traitement de l'image ou l'enregistrer en tant que copie permanente. Cette méthode est efficace et facile à utiliser car elle élimine la nécessité d'écrire des codes supplémentaires pour extraire les images de codes-barres d'une image.
Examinons 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")
L'extrait de code ci-dessus illustre l'un des cas d'utilisation de ce format de sortie. Plus précisément, il est conçu pour créer une image TIFF multipage à partir de codes-barres détectés dans un document PDF. Tout d'abord, nous scannons ou détectons les codes-barres dans l'échantillon de PDF. Ensuite, nous créons une liste AnyBitmap
dans laquelle nous stockons les informations de la propriété BarcodeImage. Enfin, nous utilisons cette liste pour générer un TIFF multipage à l'aide de la méthode CreateMultiFrameTiff
.
A noter
BarcodeImage
de BarcodeResult
ne stocke que les images des code-barres trouvés lors de la lecture et non l'image d'entrée elle-même.Type de code-barres
Cette propriété aide les utilisateurs à déterminer le type de code-barres présent dans l'image ou le document d'entrée. Cependant, cette fonctionnalité est limitée par le fait que le type de code-barres à l'intérieur de l'image doit être celui qui est pris en charge et qui peut être lu par IronBarcode. Pour en savoir plus sur les types de codes-barres pris en charge par IronBarcode, les utilisateurs peuvent se référer à ceci article.
L'extrait de code ci-dessous montre comment les utilisateurs peuvent récupérer les valeurs du code-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
Dans l'extrait de code ci-dessus, nous avons effectué la lecture du code-barres en appelant BarcodeReader.Read()
sur l'image d'entrée. Cet objet renvoie l'objet BarcodeResults
qui contient tous les BarcodeResults
issus 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 du code-barres et le type de code-barres imprimés sur la console.
Valeur binaire
En utilisant IronBarcode, les utilisateurs peuvent également récupérer le tableau d'octets de la valeur du code-barres en récupérant la propriété BinaryValue
de l'objet BarcodeResult
. Cela permet aux utilisateurs de manipuler la valeur du code-barres à l'intérieur du programme.
L'extrait de code ci-dessous illustre l'un des cas d'utilisation de la récupération de la valeur du code-barres 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
En observant l'extrait de code ci-dessus, nous avons créé un programme simple qui transforme essentiellement les multiples codes-barres d'une image en nouvelles images distinctes de codes QR. Dans un premier temps, nous scannons les codes-barres de l'échantillon d'image PNG. Une fois ces codes-barres détectés, nous les parcourons, accédons à la propriété BinaryValue et l'utilisons pour créer de nouveaux codes-barres QR.
Coordonnées du code-barres, hauteur et largeur
Une autre propriété de l'objet BarcodeResult
à laquelle les utilisateurs peuvent accéder est les coordonnées du code-barres, y compris X1, Y1, et X2, Y2, ainsi que sa Hauteur et Largeur au sein d'un fichier image ou d'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
Avant la rédaction
Après rédaction
L'extrait de code ci-dessus permet d'expurger plusieurs codes-barres présents dans un fichier image. Pour ce faire, nous avons utilisé une combinaison de deux bibliothèques, à savoir 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 en utilisant BarcodeReader.Read()
méthode. Parallèlement, le fichier image d'entrée doit également être converti en objet AnyBitmap
afin d'utiliser et d'appliquer la méthode de rédaction sur l'image. Une fois que nous avons l'objet BarcodeResults
, nous pouvons appliquer une boucle et itérer à travers lui pour obtenir les X1, Y1, Width, et Height de chaque code-barres disponible dans l'image et les utiliser comme propriétés CropRectangle
dans l'objet AnyBitmap.Redact
()` méthode.
Numéro de page
Les utilisateurs peuvent également récupérer le numéro de page où le code-barres a été trouvé. Il s'agit d'une fonction utile pour les utilisateurs qui cherchent à utiliser un document multipage contenant plusieurs codes-barres et qui ont besoin de connaître l'emplacement des codes-barres trouvés dans le document en vue d'un traitement ultérieur.
Examinons 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
L'extrait de code simple ci-dessus illustre un cas d'utilisation où les utilisateurs ont besoin que le programme renvoie la valeur des codes-barres trouvés dans un document PDF multipage, ainsi que ses numéros de page. L'extrait de code ci-dessus utilise BarcodeReader.ReadPdf()
pour lire les codes-barres dans un document PDF multipage, qui renvoie un objet BarcodeResults
contenant tous les BarcodeResults
trouvés dans le document. Appliquer la boucle et itérer sur 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 vérifier si tous les codes-barres d'un document ont pu être lus.
A noter
Rotation du code-barres et orientation de la page
En utilisant IronBarcode, les utilisateurs sont également en mesure de récupérer des informations sur l'orientation du code-barres ainsi que sur l'orientation de la page où le code-barres a été trouvé. Pour extraire ces deux informations, les utilisateurs peuvent récupérer les propriétés Rotation
et PageOrientation
de l'objet BarcodeResult
. Rotation
renvoie un entier qui représente l'angle de rotation du code-barres trouvé. Cependant, il faut tenir compte du fait que
Examinons 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
L'extrait de code simple ci-dessus a été exécuté avec l'exemple de PDF joint 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 fonction est principalement utile pour le débogage.
[{i :(IronBarcode peut uniquement lire les codes-barres de rotation 0, 90, 180 et 270 degrés. IronBarcode ne renverra aucune valeur si le code-barres a une valeur de rotation autre que celle mentionnée. PageOrientation
renvoie une valeur dePageOrientation
qui consiste en Portrait ou Paysage.)}]
Texte et valeur
Bien entendu, la principale propriété que les utilisateurs voudront récupérer lorsqu'ils utiliseront IronBarcode, c'est de connaître sa valeur et son texte. Ces deux propriétés sont souvent utilisées de manière interchangeable et renvoient la même valeur. En outre, les utilisateurs peuvent également utiliser BarcodeResult.ToString()
pour obtenir le même résultat. L'extrait de code ci-dessous en est la démonstration :
: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
D'après l'extrait de code ci-dessus, les utilisateurs n'ont besoin que de quelques lignes de code pour lire un code-barres dans une image à l'aide d'IronBarcode. Après avoir parcouru les BarcodeResults
renvoyés par BarcodeReader.Read()
, nous affichons sur la console le résultat de l'obtention des propriétés value et text, ainsi que l'appel à BarcodeResult.ToString()
pour montrer que toutes ces méthodes renvoient la même valeur.
En résumé, IronBarcode est une API parfaite permettant aux utilisateurs d'effectuer de multiples opérations concernant les codes-barres, et ne se limitant pas seulement à l'écriture et au décodage des codes-barres. Grâce à la prise en charge de divers formats de données de sortie, les utilisateurs peuvent faire beaucoup plus avec l'objet BarcodeResult
renvoyé par IronBarcode.