COMPARAISON AVEC D'AUTRES COMPOSANTS

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#.

Comment scanner des codes à barres en C# Pour les développeurs C# Figure 1

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.

Comment scanner des codes-barres dans C# Pour les développeurs C# Figure 2

2.1 Installer ZXing Barcode

Entrez la commande suivante dans la console du gestionnaire de paquets NuGet.

Install-Package ZXing.Net.Bindings.Windows.Compatibility

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.

Comment scanner des codes-barres en C# Pour les développeurs C# Figure 3

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")
VB   C#

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.

Comment scanner des codes-barres en C# Pour les développeurs C# Figure 4


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
VB   C#

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.

Comment scanner des codes-barres en C# Pour les développeurs C# Figure 5

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.

Comment scanner des codes-barres en C# Pour les développeurs C# Figure 6

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");
Imports IronBarCode
QRCodeWriter.CreateQrCode(textBox1.Text, 500, QRCodeWriter.QrErrorCorrectionLevel.Medium, 0).SaveAsPng("demo.png")
VB   C#

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()
VB   C#

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.

SUIVANT >
La bibliothèque de codes QR de ZXing.org et IronBarcode : Une comparaison complète