Lire les codes-barres en C
IronBarcode est une bibliothèque polyvalente, avancée et efficace pour la lecture des codes-barres dans .NET.
Comment lire des codes-barres en C# et VB.NET
- Installer IronBarcode à partir de NuGet ou par téléchargement de DLL
- Utiliser le
BarcodeReader.Read
pour lire n'importe quel code-barres ou QR - Lecture de plusieurs codes-barres ou QR en une seule lecture, dans un PDF ou un fichier Tiff multiframe
- Permettre à IronBarcode de lire des scans et des photos imparfaits
- Téléchargez le projet tutoriel et commencez à numériser dès maintenant
Installation
Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit.
IronBarcode est une bibliothèque polyvalente, avancée et efficace pour la lecture des codes-barres dans .NET.
La première étape sera d'installer Iron Barcode, et ceci est plus facilement réalisable en utilisant notre paquetage NuGet, bien que vous puissiez aussi choisir d'installer manuellement le paquetage DLL à votre projet ou à votre cache d'assemblage global. IronBarcode fonctionne bien pour produire une application de lecteur de codes-barres C#.
Install-Package BarCode
Lisez votre premier code-barres
Lire un code-barres ou un code QR dans .NET est extrêmement facile en utilisant la bibliothèque de classes IronBarcode avec .NET Barcode Reader. Dans notre premier exemple, nous pouvons voir comment lire ce code-barres en une seule ligne de code.
Nous pouvons extraire sa valeur, son image, son type d'encodage, ses données binaires..(le cas échéant)et nous pouvons l'afficher dans la console.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-1.cs
using IronBarCode;
using System;
// Read barcode
BarcodeResults results = BarcodeReader.Read("GetStarted.png");
// Log the result to Console Window
foreach (BarcodeResult result in results)
{
if (result != null)
{
Console.WriteLine("GetStarted was a success. Read Value: " + result.Text);
}
}
Imports IronBarCode
Imports System
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("GetStarted.png")
' Log the result to Console Window
For Each result As BarcodeResult In results
If result IsNot Nothing Then
Console.WriteLine("GetStarted was a success. Read Value: " & result.Text)
End If
Next result
Faites plus d'efforts et soyez précis
Dans cet exemple suivant, nous allons ajouter une option de lecture de code-barres pour lire une image difficile. La valeur ExtremeDetail de l'enum Speed permet un balayage plus approfondi pour un code-barres qui pourrait être obscurci, corrompu ou à un angle incliné.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-2.cs
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose a speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more Detail is set
Speed = ReadingSpeed.ExtremeDetail,
// By default, all barcode formats are scanned for.
// Specifying one or more, performance will increase.
ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};
// Read barcode
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
Imports IronBarCode
Private options As New BarcodeReaderOptions() With {
.Speed = ReadingSpeed.ExtremeDetail,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128
}
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
Qui lira ce code QR faussé :
Dans notre exemple, vous pouvez voir que nous pouvons spécifier l'encodage du code-barres(s)nous recherchons un ou même plusieurs formats. Cela permet d'améliorer considérablement les performances et la précision de la lecture des codes-barres. Les pipe character, or 'Bitwise OR,' is used to specify multiple formats simultaneously.
Le même résultat peut être atteint, mais avec un degré de spécificité plus élevé, si nous avançons et utilisons les propriétés ImageFilters et AutoRotate.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-3.cs
using IronBarCode;
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Choose which filters are to be applied (in order)
ImageFilters = new ImageFilterCollection() {
new AdaptiveThresholdFilter(),
},
// Uses machine learning to auto rotate the barcode
AutoRotate = true,
};
// Read barcode
BarcodeResults results = BarcodeReader.Read("TryHarderQR.png", options);
Imports IronBarCode
Private options As New BarcodeReaderOptions() With {
.ImageFilters = New ImageFilterCollection() From {New AdaptiveThresholdFilter()},
.AutoRotate = True
}
' Read barcode
Private results As BarcodeResults = BarcodeReader.Read("TryHarderQR.png", options)
Lecture de plusieurs codes-barres
Documents PDF
Dans notre prochain exemple, nous allons nous intéresser à la lecture d'un fichierdocument PDF scanné et trouver tous les codes-barres de format unidimensionnel en très peu de lignes de code.
Comme vous pouvez le voir, c'est très similaire à la lecture d'un seul code-barres à partir d'un seul document, sauf que nous disposons maintenant d'une nouvelle information concernant le numéro de page sur lequel le code-barres a été trouvé.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-4.cs
using IronBarCode;
using System;
// Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
BarcodeResults results = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Work with the results
foreach (var pageResult in results)
{
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);
}
Imports IronBarCode
Imports System
' Multiple barcodes may be scanned up from a single document or image. A PDF document may also used as the input image
Private results As BarcodeResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Work with the results
For Each pageResult In results
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
Nous trouvons les codes-barres suivants sur différentes pages.
Scanne des TIFFs
Dans notre prochain exemple, nous pouvons voir que le même résultat peut être obtenu à partir d'un TIFF multi-images, qui sera traité de manière similaire à un PDF dans ce contexte.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-5.cs
using IronBarCode;
// Multi frame TIFF and GIF images can also be scanned
BarcodeResults multiFrameResults = BarcodeReader.Read("Multiframe.tiff");
foreach (var pageResult in multiFrameResults)
{
//...
}
Imports IronBarCode
' Multi frame TIFF and GIF images can also be scanned
Private multiFrameResults As BarcodeResults = BarcodeReader.Read("Multiframe.tiff")
For Each pageResult In multiFrameResults
'...
Next pageResult
Multithreading
Pour lire plusieurs documents, nous pouvons obtenir de meilleurs résultats avec IronBarcode en créant une liste des documents et en utilisant le BarcodeReader.Read
méthode. Cette méthode utilise plusieurs threads et potentiellement tous les cœurs de votre CPU pour le processus de lecture des codes-barres et peut être exponentiellement plus rapide que la lecture des codes-barres un par un.
:path=/static-assets/barcode/content-code-examples/tutorials/reading-barcodes-6.cs
using IronBarCode;
// The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
var ListOfDocuments = new[] { "image1.png", "image2.JPG", "image3.pdf" };
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
// Enable multithreading
Multithreaded = true,
};
BarcodeResults batchResults = BarcodeReader.Read(ListOfDocuments, options);
Imports IronBarCode
' The Multithreaded property allows for faster barcode scanning across multiple images or PDFs. All threads are automatically managed by IronBarCode.
Private ListOfDocuments = { "image1.png", "image2.JPG", "image3.pdf" }
Private options As New BarcodeReaderOptions() With {.Multithreaded = True}
Private batchResults As BarcodeResults = BarcodeReader.Read(ListOfDocuments, options)
Résumé
En résumé, IronBarcode est une bibliothèque logicielle .NET polyvalente et un générateur de code QR en C# capable de lire une large gamme de formats de code-barres. Il peut le faire indépendamment du fait que les codes-barres soient des captures d'écran parfaites ou des images réelles imparfaites, telles que des photographies ou des scans.
Pour en savoir plus
Pour en savoir plus sur l'utilisation d'IronBarcode, vous pouvez explorer les autres tutoriels de cette section, ainsi que les exemples sur notre page d'accueil, que la plupart des développeurs trouveront suffisants pour débuter.
NotreRéférence API, en particulier la classe BarcodeReader et l'énumération BarcodeEncoding, fourniront des informations détaillées sur ce que vous pouvez réaliser avec cette bibliothèque de codes-barres C#.
Téléchargement du code source
Nous vous encourageons également fortement à télécharger ce tutoriel et à l'exécuter vous-même. Vous pouvez le faire en téléchargeant le code source ou en nous forkant sur GitHub. La source de ce tutoriel de lecteur de code-barres .NET est disponible en tant que projet d'application console Visual Studio 2017 écrit en C#.