Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Dans ce tutoriel, nous comparerons deux bibliothèques C# largement utilisées - IronBarcode et QrCoder - pour travailler avec des codes QR et des codes-barres.
Commençons par une brève présentation des deux bibliothèques :
IronBarcode est une bibliothèque créée et maintenue par Iron Software qui permet aux ingénieurs logiciels C# de lire et d'écrire des codes-barres et des codes QR dans des applications et des sites Web .NET. Il est disponible sur NuGet pour tous les Frameworks .NET et les Frameworks .NET Core. IronBarcode ne nécessite qu'une seule ligne de code pour lire ou écrire des codes-barres.
QRCoder est une bibliothèque C# simple qui permet de créer des codes QR. Elle ne dépend pas d'autres bibliothèques et est disponible sur NuGet dans les versions PCL de .NET Framework et .NET Core.
Les deux bibliothèques doivent présenter les caractéristiques principales suivantes :
Générer un code-barres
Nous mettrons en œuvre toutes ces fonctionnalités à partir des deux bibliothèques et nous comparerons leurs performances.
Tout d'abord, installons les deux bibliothèques dans notre projet Visual Studio. Comme les deux bibliothèques ont leurs propres paquets NuGet, nous les installerons via la console du gestionnaire de paquets NuGet.
Pour installer IronBarcode, tapez la commande suivante dans la console du gestionnaire de paquets :
Install-Package BarCode
Ceci installera la bibliothèque IronBarcode dans notre projet.
Tapez la commande suivante dans la console du gestionnaire de paquets
Install-Package QRCoder
Cela installera la bibliothèque QrCoder dans notre projet.
Nous allons maintenant générer notre premier code QR en utilisant les deux bibliothèques.
Le code suivant génère un code QR.
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");
qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode");
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");
qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode");
stopwatch.Stop();
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
Dim qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder")
qrCode.SaveAsPng("D:\Barcode Images\QrCodeByIronBarcode")
stopwatch.Stop()
Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms")
L'instance Stopwatch
est créée pour mesurer le temps d'exécution du programme afin d'analyser l'efficacité de la bibliothèque.
IronBarcode prend 3503 ms pour générer et enregistrer un code QR.
L'exemple de code suivant génère un code QR à l'aide de QrCoder.
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrCode.GetGraphic(20);
qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
Dim qrGenerator As New QRCodeGenerator()
Dim qrCodeData As QRCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q)
Dim qrCode As New QRCode(qrCodeData)
Dim qrCodeImage As Bitmap = qrCode.GetGraphic(20)
qrCodeImage.Save("D:\Barcode Images\QrCodeByQrCoder.png")
QrCoder ne fournit pas de fonction intégrée permettant d'enregistrer le code QR sous forme d'image. Cependant, nous pouvons l'enregistrer en analysant le QrCoder en un objet Bitmap. Nous pouvons ensuite enregistrer le code QR à l'aide de la fonction d'enregistrement fournie par Bitmap.
QrCoder prend 592 ms pour générer et enregistrer un code QR.
Le temps d'exécution d'IronBarcode est de 3503 ms, alors que celui de QrCoder n'est que de 592 ms. QrCoder est donc plus performant qu'IronBarcode.
La génération de codes QR est beaucoup plus simple dans IronBarcode, car nous n'avons besoin d'écrire que deux lignes de code. Avec la bibliothèque QrCoder, cinq lignes de code suffisent.
IronBarcode propose également une fonction intégrée permettant d'enregistrer les codes QR générés dans un fichier, ce qui n'est pas le cas de QrCoder. Nous devons créer un objet bitmap pour enregistrer le code QR dans un fichier. Nous devons donc créer quatre objets pour générer des codes QR à l'aide de QrCoder. Il suffit de créer un objet dans IronBarcode pour faire la même chose.
Ensuite, nous allons générer des codes-barres à l'aide des deux bibliothèques.
Le code suivant génère un code-barres à l'aide d'IronBarcode :
var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);
barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);
barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
Dim barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128)
barcode.SaveAsPng("D:\Barcode Images\BarcodeByIronBarcode.png")
Le temps d'exécution nécessaire pour générer un code-barres à l'aide d'IronBarcode est le suivant :
Il faut 3756 ms ou 3,76 sec pour générer un code-barres.
Il convient de noter que la bibliothèque QrCoder ne permet pas de créer des codes-barres. Par conséquent, si vous devez créer des codes-barres, IronBarcode est la meilleure option.
En ce qui concerne la lecture des codes QR, voyons quelle bibliothèque est la meilleure option.
Le code suivant permet de lire un code QR à l'aide d'IronBarcode.
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Extracted text from QR Code is: "+result.Text);
}
}
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Extracted text from QR Code is: "+result.Text);
}
}
Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\QrcodeByIronBarcode.png")
If results IsNot Nothing Then
For Each result As BarcodeResult In results
Console.WriteLine("Extracted text from QR Code is: " & result.Text)
Next result
End If
IronBarcode renvoie un Enumerable
comme résultat de la lecture des codes QR. Nous devons parcourir en boucle le Enumerable
pour récupérer chaque résultat. Cette fonction est utile pour lire des codes QR à partir d'un document ou d'une image comportant plusieurs codes QR.
Il faut 3136 ms ou 3,1 secondes avec IronBarcode.
La bibliothèque QrCoder ne permet pas de lire ou de scanner un code QR.
Le code suivant scanne le code-barres à l'aide d'IronBarcode.
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
}
}
BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");
if (results != null)
{
foreach (BarcodeResult result in results)
{
Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
}
}
Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\BarcodeByIronBarcode.png")
If results IsNot Nothing Then
For Each result As BarcodeResult In results
Console.WriteLine("Text Extracted from Barcode is: " & result.Text)
Next result
End If
IronBarcode renvoie Enumerable
comme résultat de la lecture des codes-barres. Nous devons le parcourir en boucle pour obtenir chaque résultat. Il est utile pour lire les codes-barres d'un document ou d'une image qui contient plus d'un code-barres.
La sortie générée par le code ci-dessus est la suivante :
La bibliothèque QrCoder ne permet pas de lire ou de scanner les codes QR.
Examinons maintenant les options de licence des deux bibliothèques.
IronBarcode est gratuit pour le développement. Cependant, il nécessite une licence pour être déployé en dehors de l'environnement de développement Visual Studio. Le prix des licences est compris entre $749 et $2999(USD). Vous pouvez bénéficier d'une réduction si vous achetez l'ensemble des documentsIron Suite.
QrCoder est un logiciel libre et ne nécessite donc aucune licence. Vous êtes libre de l'utiliser dans n'importe quel type d'environnement. Vous pouvez également contribuer à son code source si vous aimez le développement open-source.
Si nous n'avons besoin que de la fonctionnalité de génération de codes QR, QRCoder est la meilleure option à utiliser car il est gratuit et ne nécessite aucun paiement ou frais d'abonnement.
IronBarcode est une excellente option lorsque nous avons besoin de fonctionnalités allant au-delà de la génération de codes QR, comme par exemple :
Le tableau ci-dessous compare IronBarcode et QrCoder.
IronBarcode for .NET permet aux développeurs de lire et d'écrire des codes-barres et des codes QR dans leurs applications .NET en utilisant une seule ligne de code. La bibliothèque prend en charge la plupart des normes relatives aux codes-barres et aux codes QR, y compris 39/93/128, UPC A/E, EAN 8/13 et QR, entre autres. La bibliothèque pré-traite automatiquement les images de codes-barres et offre une correction de la rotation, du bruit, de la distorsion et de l'inclinaison afin d'améliorer la vitesse et la précision. IronBarcode est compatible avec les systèmes 32 et 64 bits, tous les langages .NET et diverses plateformes, notamment les applications de bureau, de console, de cloud, ainsi que les applications mobiles et web. Il permet également aux développeurs d'écrire des codes-barres et des codes QR pour les documents PDF, JPG, TIFF, GIF, BMP, PNG et HTML, et de modifier la couleur, la taille, la rotation et la qualité du texte. La bibliothèque est sécurisée et n'utilise pas de services web ni n'envoie de données sur Internet. IronBarcode est disponible pour un essai gratuit et offre trois options de licence, dont une version License Lite pour un usage individuel, un package Professional pour des équipes de 10 développeurs maximum, et un package Unlimited pour les entreprises.
QRCoder est une bibliothèque C# .NET qui génère des codes C# basés sur la norme ISO/IEC 18004 sans dépendre d'autres bibliothèques. Il offre plusieurs classes de rendu de code QR, dont QRCode, ArtQRCode, AsciiQRCode, et d'autres. Cependant, tous les moteurs de rendu ne sont pas disponibles sur tous les Framework NET, et les versions .NET Standard/.NET >=5.0 présentent certaines contraintes. QRCoder est gratuit et ne nécessite pas de licence.
IronBarcode est plus polyvalent que QRCoder car il prend en charge toutes les versions du Framework .NET, dispose d'un plus large éventail de fonctionnalités et offre une couverture SaaS et OEM Redistribution. IronBarcode fournit également une documentation complète et une assistance 24/7, ce qui n'est pas le cas de QRCoder. IronBarcode est soumis à des frais de licence, mais ceux-ci sont raisonnables compte tenu des fonctionnalités et de l'assistance qu'il offre.
IronBarcode est une bibliothèque développée parIron Softwarequi propose également d'autres bibliothèques utiles, notammentIronPDF, IronXL, IronOCRetIronWebscraper. Acheter la version complèteIron Suite pour obtenir les cinq produits à une réduction remarquable.
En résumé, IronBarcode est le mieux adapté à ceux qui ont besoin de travailler à la fois avec des codes-barres et des codes QR et qui souhaitent créer un générateur de codes-barres, un générateur de codes QR, un lecteur de codes-barres et un lecteur de codes QR. D'autre part, QRCoder convient à ceux qui ont seulement besoin de créer un générateur de code QR.
9 produits de l'API .NET pour vos documents de bureau