
Comment utiliser des scanners de codes-barres dans des applications Windows C#
Ce didacticiel montrera comment scanner les codes QR et les codes-barres dans les applications console C# et les applications Windows Forms .NET, en utilisant la bibliothèque IronBarcode comme exemple.
En utilisant la bibliothèque IronBarcode, plusieurs codes-barres peuvent être scannés et lus simultanément, et elle peut également réussir à scanner des images imparfaites. Clarifions d'abord ce qu'est un scanner de codes-barres.
Qu'est-ce qu'un scanner 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 qui peut lire les codes-barres imprimés, décoder les données contenues dans le code-barres et envoyer les données à un ordinateur.
Les étapes suivantes vous indiqueront comment créer un scanner de codes-barres avec l'aide de la bibliothèque IronBarcode.
Comment lire les codes-barres en C#
- Créer un projet d'application Windows Forms .NET dans Microsoft Visual Studio
- Installer la bibliothèque de codes-barres
- Lire tout code-barres ou code QR
- Lire plusieurs codes-barres ou codes QR en un seul scan
- Permettre à IronBarcode de lire à partir de scans et de photos imparfaits
1. Créez une application Windows Forms dans Microsoft Visual Studio
Ouvrez Visual Studio > Cliquez sur Créer un nouveau projet > Sélectionnez Modèle d'application Windows Forms > 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 depuis la boîte à outils de Visual Studio : PictureBox, Label, TextBox et contrôles Button.
Scanner de codes-barres
2. Installez la bibliothèque .NET Barcode en C#
La bibliothèque Barcode peut être installée à l'aide de l'une des trois méthodes suivantes :
1. Console du Gestionnaire de packages
Écrivez la commande suivante dans la console du gestionnaire de packages. Il téléchargera et installera le package pour vous.
2. Solution du gestionnaire de packages NuGet
Vous pouvez également installer la bibliothèque Barcode en utilisant la solution de package NuGet. Suivez simplement ces étapes :
Cliquez sur Outils > Gestionnaire de Packages NuGet > Gérer les packages NuGet pour la solution.
Cela ouvrira le Gestionnaire de Packages NuGet pour vous. Cliquez sur Parcourir et recherchez Barcode, puis installez la bibliothèque de classes.
3. Téléchargement depuis le lien
En alternative, le IronBarCode.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 codes-barres.
using IronBarCode;Imports IronBarCode3. Lire tout code-barres ou code QR
Lire un code-barres ou un code QR dans .NET est incroyablement facile en utilisant la bibliothèque IronBarcode avec le lecteur de codes-barres .NET.
Scanner de codes-barres
Dans votre projet, parcourez l'image que vous souhaitez lire. Il s'ouvrira dans PictureBox; cliquez maintenant sur "scanner le code". Le texte apparaîtra dans la zone de texte.
Voici le code pour le 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 PictureBox
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
Dim open As New OpenFileDialog()
' Image filters
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp"
If open.ShowDialog() = DialogResult.OK Then
' Display image in PictureBox
pictureBox1.Image = New Bitmap(open.FileName)
' Store image file path in class data member. Initialize it as string ImageFileName;
ImageFileName = open.FileName
End IfLe code pour le bouton "scanner le code" :
// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;' Read the barcode from the image file path
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName)
' Display the decoded text in TextBox
textBox1.Text = Result.TextLe scanner de codes-barres affiche les données du code-barres dans la zone de texte comme suit :
Image du code-barres à scanner avec C#
Scanner de codes QR
Dans cette section, la bibliothèque IronBarcode gère efficacement les situations du monde réel impliquant des codes QR inclinés. Bien que le QR code incliné puisse être géré et lu par la méthode Read, il peut néanmoins prendre plus de temps à résoudre. La bibliothèque IronBarcode offre une manière personnalisée d'utiliser BarcodeReaderOptions comme paramètre supplémentaire pour gérer ce type d'entrée d'image. Le code se présente comme suit :
// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
new SharpenFilter(),
new InvertFilter(),
new ContrastFilter(),
new BrightnessFilter(),
new AdaptiveThresholdFilter(),
new BinaryThresholdFilter()
};
// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
ImageFilters = filtersToApply,
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};
// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;' Define a collection of image filters to apply
Dim filtersToApply = New ImageFilterCollection() From {
New SharpenFilter(),
New InvertFilter(),
New ContrastFilter(),
New BrightnessFilter(),
New AdaptiveThresholdFilter(),
New BinaryThresholdFilter()
}
' Configure barcode reader options with specified filters
Dim myOptionsExample As New BarcodeReaderOptions() With {
.ImageFilters = filtersToApply,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}
' Read the barcode/QR code with custom options and display result
Dim Result As BarcodeResult = BarcodeReader.Read(ImageFileName, myOptionsExample)
textBox1.Text = Result.TextLa sortie sera la suivante après avoir ouvert l'image inclinée du code QR :
Image du code QR incliné
Lire plusieurs codes-barres en un seul scan
Documents PDF
Les images de codes-barres peuvent être scannées à partir d'un fichier PDF, et chaque résultat peut être affiché comme souhaité. Le code d'exemple suivant vous permet de lire plusieurs codes-barres à partir d'un fichier PDF.
// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results found
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);
}' Scan for multiple barcodes within a PDF document
Dim PDFResults() As BarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results found
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 PageResultCode-barres et code QR présents dans des fichiers PDF :
C# - Lire des codes-barres à partir d'un fichier PDF résultats
Lire les codes-barres à partir d'images imparfaites
Dans les cas d'utilisation réels, les codes-barres se trouvent souvent avec des imperfections dans les images, scans, vignettes ou photographies, et peuvent contenir du bruit numérique ou être inclinés. Cette section montre comment lire les données de codes-barres à partir de vignettes.
Vignettes
La bibliothèque IronBarcode utilise le générateur de codes-barres C#, qui est même capable de lire une vignette corrompue d'un code-barres.
Correction automatique de la taille des vignettes de codes-barres. Fichier lisible à l'aide d'IronBarcode en C#
Il détecte automatiquement les images de codes-barres trop petites pour représenter raisonnablement un véritable code-barres, puis augmente et nettoie tout le bruit numérique associé à la création de vignettes, les rendant ainsi à 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.
Dim SmallResult As BarcodeResult = BarcodeReader.Read("ThumbnailOfBarcode.gif")Résumé
IronBarcode est une bibliothèque logicielle .NET polyvalente et un générateur de codes QR C# pour scanner et lire une large gamme de formats d'image de codes-barres, et il peut le faire que ces codes-barres soient des captures d'écran parfaites ou soient en réalité des photographies, scans ou autres images imparfaites du monde réel. De plus, IronBarcode offre un large éventail d'options de personnalisation pour améliorer la vitesse de lecture des codes-barres, telles que les régions de recadrage ou multi-threading, et précision du modèle d'apprentissage automatique. Visitez la page officielle des documents pour plus d'informations sur IronBarcode.
Actuellement, si vous achetez l'intégralité de la suite Iron, vous pouvez obtenir cinq bibliothèques pour le prix de seulement deux.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.
Articles connexes


