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 scanner des codes-barres dans C# pour les développeurs C#
Publié juin 21, 2023
Partager:
Introduction
Les codes-barres constituent un moyen clair et lisible par les machines de présenter des données. À l'origine, les codes-barres étaient constitués de lignes parallèles de largeurs et d'espacements variables, servant de représentation des données. Ces méthodes traditionnelles linéaires ou unidimensionnelles(1D) les codes-barres peuvent être scannés par des appareils optiques spécialisés appelés lecteurs de codes-barres. Cependant, l'évolution des codes-barres a conduit à l'invention de codes bidimensionnels(2D) les codes-barres, également connus sous le nom de codes matriciels. Contrairement aux codes-barres traditionnels, les codes-barres 2D utilisent des motifs tels que des rectangles, des points et des hexagones au lieu de barres. Pour lire ces codes-barres 2D, il existe des scanners optiques spécifiques ou d'autres méthodes consistant à utiliser un appareil photo numérique connecté à un ordinateur équipé d'un logiciel de décodage. En outre, les appareils mobiles tels que les smartphones peuvent tirer parti de leurs caméras intégrées et d'applications dédiées pour fonctionner comme un lecteur de codes-barres 2D.
ZXing Barcode Scanner
Zebra Crossing, souvent connu sous le nom de ZXing, est une boîte à outils de traitement d'images de codes-barres 1D/2D multiformats à source ouverte, développée en Java et dotée de ports pour d'autres langages. La bibliothèque principale de décodage d'images, le code client spécifique à Java et le lecteur de codes-barres pour Android ne sont que quelques-uns des modules qui composent ZXing. De nombreux projets open-source plus indépendants sont construits sur cette base.
1. Caractéristiques
Il peut assurer le suivi des URL, des informations de contact, des événements du calendrier, etc.
Il a été créé pour les applications Java SE.
L'intégration d'un lecteur de code-barres est possible.
Il s'agit d'une simple application Google Glass.
2. Utiliser ZXing avec .NET
Ouvrez Visual Studio, choisissez "nouveau projet" dans le menu fichier, puis "application console". Dans cet article, nous choisissons l'application console C#.
Saisissez le nom du projet et le chemin d'accès au fichier dans la zone de texte appropriée. Ensuite, cliquez sur le bouton Créer pour choisir le Framework .NET requis.
Si vous avez sélectionné une application console, le projet va maintenant créer sa structure et ouvrir le fichier program.cs, ce qui vous permettra de saisir le code du programme et de le construire ou de l'exécuter.
2.1 Installer ZXing Barcode
Entrez la commande suivante dans la console du gestionnaire de paquets NuGet.
Il est également possible d'obtenir l'élément à l'aide de l'outil de gestion des paquets NuGet. Comme dans l'illustration ci-dessous. Essayez d'installer le premier résultat que vous choisissez.
2.2 Lire et écrire un code-barres avec ZXing
Nous sommes en mesure de créer un code-barres en utilisant l'exemple de code ci-dessous. ZXing permet de créer plus de 10 types de formats de codes-barres.
using ZXing.Windows.Compatibility;
var options = new QrCodeEncodingOptions
{
Width = 250,
Height = 250,
};
var writer = new BarcodeWriter();
writer.Format= BarcodeFormat.QR_CODE;
writer.Options = options;
System.Drawing.Bitmap _bitmap=writer.Write("Hello world");
_bitmap.Save("Demo1.png");
using ZXing.Windows.Compatibility;
var options = new QrCodeEncodingOptions
{
Width = 250,
Height = 250,
};
var writer = new BarcodeWriter();
writer.Format= BarcodeFormat.QR_CODE;
writer.Options = options;
System.Drawing.Bitmap _bitmap=writer.Write("Hello world");
_bitmap.Save("Demo1.png");
Imports ZXing.Windows.Compatibility
Private options = New QrCodeEncodingOptions With {
.Width = 250,
.Height = 250
}
Private writer = New BarcodeWriter()
writer.Format= BarcodeFormat.QR_CODE
writer.Options = options
Dim _bitmap As System.Drawing.Bitmap=writer.Write("Hello world")
_bitmap.Save("Demo1.png")
$vbLabelText $csharpLabel
Ci-dessus, nous définissons la hauteur et la largeur des QrCodeEncodingOptions. Ensuite, nous créons un objet pour BarcodeWriter. Pour le BarcodeWriter, nous définissons le format du code-barres comme QR_Code. Ensuite, nous assignons l'option qrcode que nous avons créée plus tôt. La fonction write du BarcodeWriter encode la chaîne donnée en code-barres et renvoie le code-barres sous forme d'image bitmap. Ensuite, à l'aide de la fonction de sauvegarde du bitmap, nous pouvons sauvegarder l'image. Voici le résultat du code.
using ZXing.Windows.Compatibility;
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader = new BarcodeReader();
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
Console.WriteLine(result.Text);
Console.ReadKey();
}
using ZXing.Windows.Compatibility;
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader = new BarcodeReader();
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
Console.WriteLine(result.Text);
Console.ReadKey();
}
Imports ZXing.Windows.Compatibility
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
Private reader = New BarcodeReader()
Private result = reader.Decode(barcodeBitmap)
If result IsNot Nothing Then
Console.WriteLine(result.Text)
Console.ReadKey()
End If
$vbLabelText $csharpLabel
Dans le code ci-dessus, nous chargeons d'abord l'image dans un bitmap. Ensuite, nous créons un objet BarcodeReader. La fonction Decode nous permet de passer un bitmap comme paramètre, qui peut retourner le résultat dans plusieurs types. Ensuite, nous utilisons la propriété Text pour obtenir le texte encodé dans le code barre.
IronBarcode
Avec l'aide de cette bibliothèque de codes-barres, la lecture et la création de codes-barres sont simples. Un code-barres dynamique est facile à réaliser avec la bibliothèque d'IronBarcode. Avec seulement quelques lignes de code, cette simple bibliothèque peut générer un code-barres, ce qui nous aide à encoder des images de codes-barres. IronBarcode nous permet de générer des codes-barres dans des langages tels que C# et VB.NET.
1. Caractéristiques
IronBarcode peut lire et écrire la majorité des formats d'image de code-barres et des normes QR, y compris UPC A/E, Databar, EAN 8/13, MSI, Code 39/93/128, CodaB, RSS 14/Expanded, et ITF.
Tout en analysant les scans et les images vidéo en temps réel, IronBarcode peut rectifier la rotation, le bruit, la distorsion et l'obliquité. Pour améliorer la précision et la vitesse de lecture, IronBarcode traite automatiquement les images de codes-barres au fur et à mesure de leur création. Les codes-barres dynamiques sont fréquemment utilisés car ils permettent de modifier le contenu.
La capacité d'IronBarcode à utiliser de nombreux cœurs et threads est avantageuse pour les serveurs de traitement par lots.
Dans les documents d'une ou plusieurs pages, IronBarcode peut trouver automatiquement un ou plusieurs codes-barres.
2. Utilisation d'IronBarcode
Pour utiliser la bibliothèque IronBarcode dans la solution, vous devez télécharger le package requis. Pour ce faire, utilisez le code du gestionnaire de paquets décrit ci-dessous :
:PackageInstall
Vous pouvez également utiliser le gestionnaire de paquets NuGet, qui affichera tous les résultats de la recherche, pour rechercher et télécharger le paquet "Barcode". Vous pouvez ensuite sélectionner le paquet essentiel à télécharger dans le programme.
3. Lire et écrire des codes-barres avec IronBarcode
Avec seulement quelques lignes de code, nous pouvons rapidement réaliser des images de codes-barres à l'aide de la bibliothèque IronBarcode. En outre, il nous permet de sauvegarder le code-barres créé en tant que fichier image séparé. Voici un exemple de code Visual Basic pour créer une étiquette de code-barres avec un programme Console.
using IronBarCode;
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png");
using IronBarCode;
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png");
Un graphique de 500 x 500 pixels est produit en utilisant un niveau moyen de correction d'erreurs, puis enregistré dans un fichier à l'aide de la méthode SaveAsPng.
L'exemple de code suivant lit le texte encodé dans le code QR que nous avons créé dans l'exemple précédent.
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader=IronBarCode.BarcodeReader.Read(barcodeBitmap);
Console.WriteLine(reader.Values()[0]);
Console.ReadKey();
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
var reader=IronBarCode.BarcodeReader.Read(barcodeBitmap);
Console.WriteLine(reader.Values()[0]);
Console.ReadKey();
Dim barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
Dim reader=IronBarCode.BarcodeReader.Read(barcodeBitmap)
Console.WriteLine(reader.Values()(0))
Console.ReadKey()
$vbLabelText $csharpLabel
Nous chargeons d'abord l'image dans un bitmap, puis nous la lisons en utilisant la méthode Read de la classe BarcodeReader. Nous utilisons la propriété Values de l'objet BarcodeResults renvoyé par la méthode Read pour obtenir le contenu qui a été lu à partir du code QR.
Pour en savoir plus sur ZXing et sa comparaison avec IronBarcode, lisez ceciprochain article de blog.
NotreLecture des codes-barres le tutoriel fournit également plus d'informations sur l'utilisation d'IronBarcode pour lire les codes-barres et les codes QR. Pour plus de tutoriels de code sur IronBarcode.
Conclusion
Le scanner de codes-barres ZXing peut créer des codes-barres de haute qualité, mais il est obsolète et ne prend en charge que peu de formats de codes-barres. La documentation et l'assistance produit sont également limitées.
D'autre part, IronBarcode est très efficace et flexible, et peut fonctionner sur de nombreux systèmes d'exploitation. IronBarcode peut modifier la couleur, la taille, l'espacement et le lettrage utilisés dans les codes-barres. Il prend également en charge Crystal Reports.
Les développeurs peuventutiliser IronBarcode gratuitement. Les utilisateurs peuvent acheter unlicence pour accéder à des fonctionnalités supplémentaires et bénéficier d'une année complète d'assistance et de mises à jour du produit.
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.
SUIVANT > La bibliothèque de codes QR de ZXing.org et IronBarcode : Une comparaison complète
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