Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

Comment scanner des codes-barres dans ZXing pour les développeurs C#

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 à partir de celle-ci.

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

Comment scanner les codes-barres dans ZXing pour les développeurs C# Figure 1

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.

Comment scanner les codes-barres dans ZXing pour les développeurs C# Figure 2

2.1 Installer ZXing Barcode

Entrez la commande suivante dans la Console du Gestionnaire de Paquets NuGet pour installer la bibliothèque ZXing:

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

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.

Comment scanner les codes-barres dans ZXing pour les développeurs C# Figure 3

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");
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")
$vbLabelText   $csharpLabel

Le code ci-dessus définit la hauteur et la largeur pour les QrCodeEncodingOptions. Ensuite, il crée une instance de BarcodeWriter. Pour le BarcodeWriter, nous définissons le format du code-barres comme QR code. Nous attribuons les options de QR code précédemment créées à l'écrivain. La méthode Write dans le BarcodeWriter encode la chaîne donnée dans un code-barres et la renvoie sous forme d'image bitmap. L'image est enregistrée en utilisant la méthode Save du bitmap. Ci-dessous le résultat du code.

Comment scanner les codes-barres dans ZXing pour les développeurs C# Figure 4

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();
}
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 If
$vbLabelText   $csharpLabel

Dans le code ci-dessus, nous chargeons d'abord l'image dans un bitmap, puis nous créons un objet BarcodeReader. La fonction Decode nous permet de passer le bitmap en paramètre, ce qui peut retourner des résultats dans plusieurs formats. Nous utilisons la propriété Text pour obtenir le texte encodé dans le code-barres.

Comment scanner les codes-barres dans ZXing 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 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 Gestionnaire de Paquets NuGet:

Install-Package BarCode

Comme alternative, vous pouvez utiliser le Gestionnaire de Paquets 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.

Comment scanner les codes-barres dans ZXing pour les développeurs C# Figure 6

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");
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")
$vbLabelText   $csharpLabel

Ce code produit une image de 500 par 500 pixels en utilisant un niveau moyen de correction d'erreurs, 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();
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()
$vbLabelText   $csharpLabel

Nous chargeons d'abord l'image dans un bitmap, et puis lisons l'image en utilisant la méthode Read sur 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.

Veuillez noterZXing est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, approuvé, ou parrainé par ZXing. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.

Questions Fréquemment Posées

Comment puis-je convertir HTML en PDF en C# ?

Vous pouvez utiliser la méthode RenderHtmlAsPdf d'IronPDF pour convertir des chaînes HTML en PDFs. Vous pouvez également convertir des fichiers HTML en PDFs en utilisant RenderHtmlFileAsPdf.

Quelles sont les différences entre IronBarcode et ZXing ?

IronBarcode offre une plus grande flexibilité et prend en charge une gamme plus large de formats de codes-barres par rapport à ZXing. Bien que ZXing soit efficace pour créer des codes-barres, il est limité en termes de prise en charge des formats et de documentation. IronBarcode excelle en efficacité et est compatible avec divers systèmes d'exploitation.

Comment scanner un code-barres avec un appareil mobile ?

Avec le client Android ZXing Barcode Scanner, vous pouvez utiliser l'appareil photo de votre appareil pour scanner des codes-barres. Pour des fonctionnalités plus robustes, IronBarcode peut être intégré dans des applications mobiles pour améliorer les capacités de lecture des codes-barres.

IronBarcode prend-il en charge les codes-barres 2D ?

Oui, IronBarcode prend en charge à la fois les codes-barres 1D et 2D, y compris les codes QR, permettant une lecture et une création polyvalentes de codes-barres.

IronBarcode peut-il gérer la création de codes-barres dynamiques ?

IronBarcode prend en charge la création de codes-barres dynamiques, vous permettant de personnaliser les codes-barres en termes de couleur, de taille, d'espacement et de lettrage pour répondre à des exigences spécifiques.

Qu'est-ce qui est nécessaire pour intégrer IronBarcode dans un projet .NET ?

Pour intégrer IronBarcode dans un projet .NET, installez le package via la console du gestionnaire de packages NuGet en utilisant Install-Package IronBarcode ou trouvez-le dans le gestionnaire de packages NuGet.

Y a-t-il un coût associé à l'utilisation de IronBarcode ?

IronBarcode offre un essai gratuit, mais l'achat d'une licence fournit des fonctionnalités supplémentaires, des mises à jour de produits et un an de support.

IronBarcode peut-il être utilisé pour lire des codes-barres à partir de cadres vidéo ?

Oui, IronBarcode peut traiter des cadres vidéo en temps réel, corrigeant la rotation, le bruit, la distorsion et le désalignement pour améliorer la précision et la vitesse de lecture des codes-barres.

Quelles sont les fonctionnalités de ZXing pour la lecture de codes-barres ?

ZXing fournit un outil open-source pour la lecture de codes-barres, notamment pour les codes-barres 1D et 2D. Il comprend une bibliothèque de décodage d'images principale et un client Android Barcode Scanner.

Quelles sont les langues de programmation prises en charge par IronBarcode ?

IronBarcode prend en charge C# et VB.NET, ce qui le rend idéal pour les développeurs travaillant dans le cadre .NET.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite