using IronBarCode;
using System.Drawing;
// Reading a barcode is easy with IronBarcode!
var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file
var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap
var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image
var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf
// To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
var myOptionsExample = new BarcodeReaderOptions
{
// Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more detail is set
Speed = ReadingSpeed.Balanced,
// Reader will stop scanning once a single barcode is found (if set to true)
ExpectMultipleBarcodes = true,
// By default, all barcode formats are scanned for
// Specifying a subset of barcode types to search for would improve performance
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
// Utilize multiple threads to read barcodes from multiple images in parallel
Multithreaded = true,
// Maximum threads for parallelized barcode reading
// Default is 4
MaxParallelThreads = 2,
// The area of each image frame in which to scan for barcodes
// Specifying a crop area will significantly improve performance and avoid noisy parts of the image
CropArea = new Rectangle(),
// Special setting for Code39 barcodes
// If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
UseCode39ExtendedMode = true
};
// Read with the options applied
var results = BarcodeReader.Read("barcode.png", myOptionsExample);
// Create a barcode with one line of code
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100);
// Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg");
Image myBarcodeImage = myBarcode.Image; // Can be used as Image
Bitmap myBarcodeBitmap = myBarcode.ToBitmap(); // Can be used as Bitmap
Comment utiliser les lecteurs de codes-barres dans l'application Windows C#
UTILISATION D'IRONBARCODE
Comment utiliser les lecteurs de BarCode dans les applications Windows C#
Mise à jour janvier 20, 2024
Partager:
Ce tutoriel explique comment scanner des codes QR et des codes-barres dans les applications C# Console et les applications .NET Windows Forms, en utilisant la bibliothèque IronBarcode pour l'exemple.
Grâce à la bibliothèque IronBarcode, plusieurs codes-barres peuvent être scannés et lus simultanément, et il est également possible de scanner avec succès des images imparfaites. Précisons d'abord ce qu'est un lecteur de codes-barres.
Qu'est-ce qu'un lecteur de codes-barres ?
Un code-barres est une image carrée ou rectangulaire constituée d'une série de lignes noires parallèles et d'espaces blancs de largeurs variables. Un scanner de codes-barres ou lecteur de codes-barres est un appareil capable de lire des codes-barres imprimés, de décoder les données contenues dans le code-barres et d'envoyer ces données à un ordinateur.
Les étapes suivantes expliquent comment créer un lecteur de codes-barres à l'aide de la bibliothèque IronBarcode.
Comment lire les codes-barres dans C# ;
Créer un projet d'application Windows Forms .NET dans Microsoft Visual Studio
Installer la bibliothèque de codes-barres
Lire n'importe quel code-barres ou code QR
Lire plusieurs codes-barres ou codes QR en un seul balayage
Permettre à IronBarcode de lire des scans et des photos imparfaits
1. Créer une application Windows Forms dans Microsoft Visual Studio
Ouvrez Visual Studio > Cliquez sur Créer un nouveau projet > Sélectionnez Windows Forms Application Template > Appuyez sur Suivant > Nommez le projet > Appuyez sur Suivant > Sélectionnez votre Framework .NET cible > Cliquez sur le bouton Créer.
Après avoir créé le projet, concevez le formulaire comme suit à partir de la boîte à outils de Visual Studio : Contrôles PictureBox, Label, TextBox et Button.
Scanner de codes-barres
2. Installer la bibliothèque Barcode .NET dans C# ;
La bibliothèque de codes-barres peut être installée en utilisant l'une des trois méthodes suivantes :
1. Console du gestionnaire de paquets
Écrivez la commande suivante dans la console du gestionnaire de paquets. Il téléchargera et installera le paquet pour vous.
Install-Package BarCode
2. Solution NuGet Packages Manager
Vous pouvez également installer la bibliothèque de codes-barres en utilisant la solution NuGet Package. Il suffit de suivre les étapes suivantes :
Cliquez sur Outils > NuGet Package Manager > Gestion des paquets NuGet pour la solution.
Cela ouvrira le gestionnaire de paquets NuGet. Cliquez sur Browse et recherchez Barcode, puis installez la bibliothèque de classes.
3. Télécharger à partir du lien
En guise d'alternative, leIronBarCode.Dll peut être téléchargé et ajouté à votre projet comme référence.
Après le téléchargement, ajoutez les références suivantes à votre projet de lecteur de code-barres.
using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText $csharpLabel
3. Lire n'importe quel code-barres ou code QR
La lecture d'un code-barres ou d'un code QR dans .NET est incroyablement facile grâce à la bibliothèque IronBarcode for .NET.NET Barcode Reader.
Lecteur de codes-barres
Dans votre projet, recherchez l'image que vous souhaitez lire. Il l'ouvrira dans PictureBox ; cliquez ensuite sur "scan code". Le texte apparaît dans la zone de texte.
Voici le code du bouton "parcourir" pour ouvrir une image :
// open file dialog
OpenFileDialog open = new OpenFileDialog();
// image filters
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)
*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {
// display image in picture box
pictureBox1.Image = new Bitmap(open.FileName);
// store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName;
}
// open file dialog
OpenFileDialog open = new OpenFileDialog();
// image filters
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)
*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {
// display image in picture box
pictureBox1.Image = new Bitmap(open.FileName);
// store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Le code du bouton "scan code" :
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
textBox1.Text = Result.Text;
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
textBox1.Text = Result.Text;
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName)
textBox1.Text = Result.Text
$vbLabelText $csharpLabel
Le lecteur de codes-barres affiche les données du code-barres dans la zone de texte comme suit :
Barcode Image to be Scanned with C# (Image de code-barres à scanner avec C#)
Scanner de code QR
Dans cette section, la bibliothèque IronBarcode gère efficacement des situations réelles impliquant des codes QR de travers. Bien que le code QR à angle oblique puisse être traité et lu par l'applicationLire elle peut néanmoins prendre plus de temps à résoudre. La bibliothèque IronBarcode offre une façon personnalisée d'utiliser les codesBarcodeReaderOptions (Options du lecteur de codes-barres) en tant que paramètre supplémentaire pour traiter ce type d'entrée d'image. Le code est le suivant :
// Choose which filters are to be applied (in order);
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
// Set chosen filters in BarcodeReaderOptions:
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode
BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
// Choose which filters are to be applied (in order);
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
// Set chosen filters in BarcodeReaderOptions:
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode
BarcodeEncoding.Code128,
};
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Le résultat sera le suivant après l'ouverture de l'image du code QR asymétrique :
Skewed QrCode Image (Image de code Qr)
Lecture de plusieurs codes-barres en un seul balayage
Documents PDF
Les images de codes-barres peuvent être scannées à partir d'un fichier PDF et chaque résultat peut être affiché de manière appropriée. L'exemple de code suivant vous permet de lire plusieurs codes-barres dans un fichier PDF.
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
foreach (var PageResult in PDFResults) {
string Value = PageResult.Value;
int PageNum = PageResult.PageNumber;
System.Drawing.Bitmap Img = PageResult.BarcodeImage;
BarcodeEncoding BarcodeType = PageResult.BarcodeType;
byte [] Binary = PageResult.BinaryValue;
Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input
imagePagedBarcodeResult [] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
foreach (var PageResult in PDFResults) {
string Value = PageResult.Value;
int PageNum = PageResult.PageNumber;
System.Drawing.Bitmap Img = PageResult.BarcodeImage;
BarcodeEncoding BarcodeType = PageResult.BarcodeType;
byte [] Binary = PageResult.BinaryValue;
Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
' Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input
Dim PDFResults() As imagePagedBarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results
For Each PageResult In PDFResults
Dim Value As String = PageResult.Value
Dim PageNum As Integer = PageResult.PageNumber
Dim Img As System.Drawing.Bitmap = PageResult.BarcodeImage
Dim BarcodeType As BarcodeEncoding = PageResult.BarcodeType
Dim Binary() As Byte = PageResult.BinaryValue
Console.WriteLine(PageResult.Value & " on page " & PageNum)
Next PageResult
$vbLabelText $csharpLabel
Code-barres et code QR présents dans les fichiers PDF :
C# - Lecture de codes-barres à partir d'un résultat PDF
Lecture de codes-barres à partir d'images imparfaites
Dans les cas d'utilisation réels, les codes-barres sont souvent associés à des imperfections dans les images, les scans, les vignettes ou les photographies, et peuvent contenir du bruit numérique ou être faussés. Cette section explique comment lire les données des codes-barres dans les vignettes.
Vignettes
La bibliothèque IronBarcode utilise la fonctionGénérateur de code-barres C#qui est même capable de lire une vignette corrompue d'un code-barres.
Correction automatique de la taille des vignettes des codes-barres. Lecture de fichiers à l'aide d'IronBarcode en C#
Il détecte automatiquement les images de codes-barres qui sont trop petites pour représenter raisonnablement un code-barres réel, puis met à l'échelle et nettoie tout le bruit numérique associé à l'utilisation du pouce, leur permettant ainsi d'être à nouveau lisibles.
// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
' Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
Dim SmallResult As BarcodeResult = BarcodeReader.Read("ThumbnailOfBarcode.gif")
$vbLabelText $csharpLabel
Résumé
IronBarcode est une bibliothèque logicielle polyvalente pour .NET etGénérateur de code QR C# pour scanner et lire une large gamme de formats d'images de codes-barres, et ce, que ces codes-barres soient ou non de parfaites captures d'écran ou qu'il s'agisse en fait de photographies, de scans ou d'autres imagesimages imparfaites du monde réel. En outre, IronBarcode offre une large gamme d'options de personnalisation pour améliorer la vitesse de lecture des codes-barres, telles querégions de culture oumultithreadingetla précision du modèle ML. Visiterla page des documents officiels pour plus d'informations sur IronBarcode.
Actuellement, si vous achetezla suite complète d'Iron Suitevous pouvez donc obtenir cinq bibliothèques pour le prix de deux.
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT Générateur de code-barres .NET Tutoriel
SUIVANT > Comment générer des codes-barres en ASP.NET à l'aide de C#
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier