Une comparaison entre le décodeur ZXing & IronBarcode
Les codes-barres fournissent un moyen clair et lisible par machine de présenter des données. Initialement, les codes-barres consistaient en des lignes parallèles de largeurs et d'espacements variables, servant de représentation des données. Ces codes-barres linéaires traditionnels ou unidimensionnels (1D) pouvaient être scannés par des dispositifs optiques spécialisés appelés lecteurs de codes-barres. Cependant, l'évolution des codes-barres a conduit à l'invention des codes-barres bidimensionnels (2D), également connus sous le nom de codes matrice. 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, des configurations de scanners optiques spécifiques sont disponibles, ou des méthodes alternatives impliquent l'utilisation d'une caméra numérique connectée à un ordinateur exécutant un logiciel de décodage. De plus, les appareils mobiles comme les smartphones peuvent utiliser leurs caméras intégrées et des applications dédiées pour fonctionner en tant que scanneur de codes-barres 2D.
ZXing Barcode Scanner
Zebra Crossing, souvent connu sous le nom de ZXing, est une boîte à outils open-source de traitement d'images de codes-barres multi-format 1D/2D qui a été développée en Java et possède des ports pour d'autres langues. La bibliothèque de décodage d'images principale, le code client spécifique à Java et le client Android Barcode Scanner ne sont que quelques-uns des modules qui composent ZXing. De nombreux autres projets open-source indépendants sont construits sur cela.
1. Caractéristiques
- Il peut suivre des URL, des informations de contact, des événements de calendrier, etc.
- Il a été créé avec les applications Java SE à l'esprit.
- Grâce à un objectif, l'intégration du scanneur de codes-barres est possible.
- C'est une application simple pour 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#.

Entrez le nom du projet et le chemin du fichier dans la zone de texte appropriée. Ensuite, cliquez sur le bouton Créer pour choisir le .NET Framework requis.
Si vous avez sélectionné une application console, le projet créera maintenant sa structure et ouvrira le fichier program.cs, vous permettant d'entrer le code du programme et de le construire ou l'exécuter.

2.1 Installer ZXing Barcode
Entrez la commande suivante dans la Console du Package Manager NuGet pour installer la bibliothèque ZXing:
Alternativement, vous pouvez obtenir le paquet en utilisant l'outil de gestion des paquets NuGet. Comme l'illustration ci-dessous. Essayez d'installer le premier résultat que vous choisissez.

2.2 Lire et écrire un code-barres en utilisant ZXing
Nous pouvons créer un code-barres en utilisant le code d'exemple suivant. ZXing nous permet de créer plus de 10 types de formats de code-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;
// Encode the string into a QR code bitmap image
System.Drawing.Bitmap _bitmap = writer.Write("Hello world");
// Save the bitmap as a PNG file
_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
' Encode the string into a QR code bitmap image
Dim _bitmap As System.Drawing.Bitmap = writer.Write("Hello world")
' Save the bitmap as a PNG file
_bitmap.Save("Demo1.png")Le code ci-dessus définit la hauteur et la largeur pour le QrCodeEncodingOptions. Puis, il crée une instance de BarcodeWriter. Pour le BarcodeWriter, nous définissons le format de code-barres comme un code QR. Nous assignons les options de QR code créées précédemment à l'écrivain. La méthode Write dans le BarcodeWriter encode la chaîne donnée en un code-barres et la retourne sous forme d'image bitmap. L'image est enregistrée en utilisant la méthode Save du bitmap. Ci-dessous se trouve le résultat du code.

L'exemple de code suivant démontre le décodage d'un code-barres en utilisant ZXing.
using ZXing.Windows.Compatibility;
// Load the barcode image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
// Create a BarcodeReader object
var reader = new BarcodeReader();
// Decode the bitmap into a result
var result = reader.Decode(barcodeBitmap);
if (result != null)
{
// Output the decoded text to the console
Console.WriteLine(result.Text);
Console.ReadKey();
}Imports ZXing.Windows.Compatibility
' Load the barcode image into a bitmap
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
' Create a BarcodeReader object
Private reader = New BarcodeReader()
' Decode the bitmap into a result
Private result = reader.Decode(barcodeBitmap)
If result IsNot Nothing Then
' Output the decoded text to the console
Console.WriteLine(result.Text)
Console.ReadKey()
End IfDans le code ci-dessus, nous chargeons d'abord l'image dans un bitmap, puis créons un objet BarcodeReader. La fonction Decode nous permet de passer le bitmap en paramètre, ce qui peut retourner des résultats sous plusieurs formats. Nous utilisons la propriété Text pour obtenir le texte encodé dans le code-barres.

IronBarcode
Avec l'aide de cette bibliothèque de codes-barres, la lecture et la création de codes-barres est simple. Un code-barres dynamique est facile à créer 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 code-barres. IronBarcode nous permet de générer des codes-barres dans des langues comme 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.
- Lors du scan de scannings et de trames vidéo en temps réel, IronBarcode peut rectifier la rotation, le bruit, la distorsion, et l'inclinaison. Pour améliorer la précision et la vitesse de lecture, IronBarcode prétraite automatiquement les images de code-barres au fur et à mesure qu'elles sont créées. 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 à une ou plusieurs pages, IronBarcode peut automatiquement trouver un ou plusieurs codes-barres.
2. Utiliser IronBarcode
Pour utiliser la bibliothèque IronBarcode dans la solution, vous devez télécharger le paquet requis. Pour ce faire, utilisez la commande suivante dans la Console du Package Manager NuGet:
Comme alternative, vous pouvez utiliser le Package Manager NuGet, qui affichera tous les résultats de recherche, pour rechercher et télécharger le paquet "Barcode". Ensuite, vous pouvez sélectionner le paquet essentiel à télécharger dans le programme parmi eux.

3. Lire et écrire des codes-barres en utilisant IronBarcode
Avec seulement quelques lignes de code, nous pouvons rapidement créer des images de code-barres en utilisant la bibliothèque IronBarcode. De plus, elle nous permet d'enregistrer le code-barres créé en tant que fichier image séparé. Voici un exemple de code C# pour créer une étiquette de code-barres avec un programme Console.
using IronBarCode;
// Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png");Imports IronBarCode
' Create a QR code with a medium error correction level
QRCodeWriter.CreateQrCode("Your text here", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium).SaveAsPng("demo.png")Ce code produit un graphique de 500 par 500 pixels en utilisant un niveau moyen de correction d'erreur, puis l'enregistre à un emplacement de fichier en utilisant 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.
using IronBarCode;
// Load the QR code image into a bitmap
var barcodeBitmap = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile("demo.png");
// Read the barcode image
var reader = IronBarCode.BarcodeReader.Read(barcodeBitmap);
// Output the decoded value to the console
Console.WriteLine(reader.Values[0]);
Console.ReadKey();Imports IronBarCode
' Load the QR code image into a bitmap
Private barcodeBitmap = CType(System.Drawing.Bitmap.FromFile("demo.png"), System.Drawing.Bitmap)
' Read the barcode image
Private reader = IronBarCode.BarcodeReader.Read(barcodeBitmap)
' Output the decoded value to the console
Console.WriteLine(reader.Values(0))
Console.ReadKey()Nous chargeons d'abord l'image dans un bitmap, puis lisons l'image en utilisant la méthode Read de la classe BarcodeReader. Nous utilisons la propriété Values sur l'objet BarcodeResults retourné par la méthode Read pour obtenir le contenu qui a été lu à partir du code QR.
Pour en savoir plus sur ZXing et comment il se compare à IronBarcode, lisez ce prochain billet de blog.
Notre tutoriel Lire les codes-barres fournit également plus d'informations sur comment utiliser IronBarcode pour lire des codes-barres et des codes QR. Pour plus de tutoriels de code sur IronBarcode.
Conclusion
Le scanneur de code-barres ZXing peut créer des codes-barres de haute qualité, mais il est obsolète et prend en charge peu de formats de code-barres. Il a également une documentation et un support produit limités.
D'autre part, IronBarcode est très efficace et flexible, et est capable de fonctionner sur de nombreux systèmes d'exploitation. IronBarcode peut changer la couleur, la taille, l'espacement et le lettrage utilisé dans les codes-barres. Il prend également en charge Crystal Reports.
Les développeurs peuvent utiliser IronBarcode gratuitement. Les utilisateurs peuvent acheter une licence pour accéder à des fonctionnalités supplémentaires et recevoir une année complète de support et de mises à jour du produit.

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.