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

Une comparaison entre IronBarcode & QrCoder C#

Dans ce tutoriel, nous allons comparer deux bibliothèques C# largement utilisées - IronBarcode et QrCoder - pour travailler avec les codes QR et les codes-barres.

Commençons par une brève introduction aux deux bibliothèques :

IronBarcode

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 les applications et sites web .NET. Elle est disponible sur NuGet pour tous les Frameworks .NET et Frameworks .NET Core. IronBarcode nécessite seulement une ligne de code pour lire ou écrire des codes-barres.

QrCoder

QRCoder est une bibliothèque C# simple qui vous permet de créer des codes QR. Elle n'a pas de dépendances sur d'autres bibliothèques et est disponible sur NuGet en versions PCL Framework .NET et .NET Core.

Les deux bibliothèques doivent avoir les fonctionnalités principales suivantes :

  • Scanner le code QR
  • Scanner le code-barres
  • Générer le code QR
  • Générer le code-barres

Nous allons implémenter toutes ces fonctionnalités à partir des deux bibliothèques et comparer leurs performances.

Tout d'abord, installons les deux bibliothèques dans notre projet Visual Studio. Étant donné que les deux bibliothèques ont leurs propres packages NuGet, nous les installerons via la console du gestionnaire de packages NuGet.

Installer IronBarcode

Pour installer IronBarcode, tapez la commande suivante dans la console du gestionnaire de packages:

Install-Package BarCode

Cela installera la bibliothèque IronBarcode dans notre projet.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 1: Installing IronBarcode

class="content__image-caption">Installation de IronBarcode

Installer QrCoder

Tapez la commande suivante dans la console du gestionnaire de packages :

Install-Package QRCoder

Cela installera la bibliothèque QrCoder dans notre projet.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 2: Installing QrCoder

class="content__image-caption">Installation de QrCoder

Maintenant, nous allons générer notre premier code QR en utilisant les deux bibliothèques.

Générer des codes QR à l'aide de IronBarcode

Le code suivant générera un code QR.

using System;
using System.Diagnostics;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Create a stopwatch to measure the execution time
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Generate a QR code
        var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");

        // Save the generated QR code as a PNG file
        qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode.png");

        // Stop the stopwatch and output the execution time
        stopwatch.Stop();
        Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
    }
}
using System;
using System.Diagnostics;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Create a stopwatch to measure the execution time
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Generate a QR code
        var qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder");

        // Save the generated QR code as a PNG file
        qrCode.SaveAsPng(@"D:\Barcode Images\QrCodeByIronBarcode.png");

        // Stop the stopwatch and output the execution time
        stopwatch.Stop();
        Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms");
    }
}
Imports System
Imports System.Diagnostics
Imports IronBarCode

Friend Class Program
	Shared Sub Main()
		' Create a stopwatch to measure the execution time
		Dim stopwatch As New Stopwatch()
		stopwatch.Start()

		' Generate a QR code
		Dim qrCode = QRCodeWriter.CreateQrCode("Iron Barcode Vs QrCoder")

		' Save the generated QR code as a PNG file
		qrCode.SaveAsPng("D:\Barcode Images\QrCodeByIronBarcode.png")

		' Stop the stopwatch and output the execution time
		stopwatch.Stop()
		Console.WriteLine($"Execution Time: {stopwatch.ElapsedMilliseconds} ms")
	End Sub
End Class
$vbLabelText   $csharpLabel

L'instance Stopwatch est créée pour mesurer le temps d'exécution du programme afin d'analyser l'efficacité de la bibliothèque.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 3: IronBarcode Result

class="content__image-caption">Code-barres généré à partir de IronBarcode

Temps d'exécution d'IronBarcode

IronBarcode prend 3503 ms pour générer et enregistrer un code QR.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 4: Execution Time

class="content__image-caption">Le temps d'exécution d'IronBarcode pour générer de nouveaux codes-barres

Créer un code QR avec QRCoder

L'exemple de code suivant générera un code QR à l'aide de QrCoder.

using System;
using System.Drawing;
using QRCoder;

class Program
{
    static void Main()
    {
        // Initialize the QRCodeGenerator
        QRCodeGenerator qrGenerator = new QRCodeGenerator();

        // Generate QRCodeData with specified error correction level
        QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);

        // Create QRCode object
        QRCode qrCode = new QRCode(qrCodeData);

        // Convert QRCode to Bitmap
        Bitmap qrCodeImage = qrCode.GetGraphic(20);

        // Save the QR code as a PNG file
        qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
    }
}
using System;
using System.Drawing;
using QRCoder;

class Program
{
    static void Main()
    {
        // Initialize the QRCodeGenerator
        QRCodeGenerator qrGenerator = new QRCodeGenerator();

        // Generate QRCodeData with specified error correction level
        QRCodeData qrCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q);

        // Create QRCode object
        QRCode qrCode = new QRCode(qrCodeData);

        // Convert QRCode to Bitmap
        Bitmap qrCodeImage = qrCode.GetGraphic(20);

        // Save the QR code as a PNG file
        qrCodeImage.Save(@"D:\Barcode Images\QrCodeByQrCoder.png");
    }
}
Imports System
Imports System.Drawing
Imports QRCoder

Friend Class Program
	Shared Sub Main()
		' Initialize the QRCodeGenerator
		Dim qrGenerator As New QRCodeGenerator()

		' Generate QRCodeData with specified error correction level
		Dim qrCodeData As QRCodeData = qrGenerator.CreateQrCode("Iron Barcode Vs QrCoder", QRCodeGenerator.ECCLevel.Q)

		' Create QRCode object
		Dim qrCode As New QRCode(qrCodeData)

		' Convert QRCode to Bitmap
		Dim qrCodeImage As Bitmap = qrCode.GetGraphic(20)

		' Save the QR code as a PNG file
		qrCodeImage.Save("D:\Barcode Images\QrCodeByQrCoder.png")
	End Sub
End Class
$vbLabelText   $csharpLabel

QrCoder ne fournit pas de fonction intégrée pour enregistrer le code QR en tant qu'image. Cependant, nous pouvons l'enregistrer en analysant le QrCoder dans un objet Bitmap. Nous pouvons ensuite enregistrer le code QR à l'aide de la fonction d'enregistrement fournie par Bitmap.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 5: QR Coder Result

class="content__image-caption">Code-barres généré par QrCoder

Temps d'exécution de QrCoder

QrCoder prend 592 ms pour générer et enregistrer un code QR.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 6: QrCoder's Execution Time

class="content__image-caption">Le temps qu'il a fallu à QrCoder pour générer un nouveau code-barres

Analyse

Le temps d'exécution pris par IronBarcode est de 3503 ms, tandis que QrCoder ne prend que 592 ms. Cela rend QrCoder plus rapide qu'IronBarcode en termes de performance.

Générer des 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, il faut cinq lignes de code.

IronBarcode fournit également une fonction intégrée pour enregistrer les codes QR générés dans un fichier, alors que QrCoder ne le fait pas. Nous devons créer un objet bitmap pour enregistrer le code QR dans un fichier. Cela nécessite de créer quatre objets pour générer des codes QR à l'aide de QrCoder. Nous avons seulement besoin de créer un objet dans IronBarcode pour faire la même chose.

Ensuite, nous allons générer des codes-barres en utilisant les deux bibliothèques.

Générer un code-barres en utilisant IronBarcode

Le code suivant générera un code-barres à l'aide d'IronBarcode :

using IronBarCode;

class Program
{
    static void Main()
    {
        // Generate a barcode with Code128 encoding
        var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);

        // Save the generated barcode as a PNG file
        barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
    }
}
using IronBarCode;

class Program
{
    static void Main()
    {
        // Generate a barcode with Code128 encoding
        var barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128);

        // Save the generated barcode as a PNG file
        barcode.SaveAsPng(@"D:\Barcode Images\BarcodeByIronBarcode.png");
    }
}
Imports IronBarCode

Friend Class Program
	Shared Sub Main()
		' Generate a barcode with Code128 encoding
		Dim barcode = BarcodeWriter.CreateBarcode("Iron Barcode Vs QrCoder", BarcodeEncoding.Code128)

		' Save the generated barcode as a PNG file
		barcode.SaveAsPng("D:\Barcode Images\BarcodeByIronBarcode.png")
	End Sub
End Class
$vbLabelText   $csharpLabel
class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 7: Generated barcode using IronBarcode

class="content__image-caption">Code-barres généré avec IronBarcode

Le temps d'exécution nécessaire pour générer un code-barres avec IronBarcode est le suivant :

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 8: Execution time for IronBarcode to generate a new Barcode

class="content__image-caption">Temps de génération du code-barres avec IronBarcode

Il faut 3756 ms ou 3,76 sec pour générer un code-barres.

Générer un code-barres à l'aide de QrCoder

Il est important de noter que la bibliothèque QrCoder ne propose pas la fonctionnalité 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 le scan des codes QR, voyons quelle bibliothèque est la meilleure option.

Lire un code QR à l'aide d'IronBarcode

Le code suivant lira un code QR à l'aide de IronBarcode.

using System;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Read QR code from an image file
        BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");

        // Check if any QR codes are found
        if (results != null)
        {
            // Loop through each result and print extracted text
            foreach (BarcodeResult result in results)
            {
                Console.WriteLine("Extracted text from QR Code is: " + result.Text);
            }
        }
    }
}
using System;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Read QR code from an image file
        BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\QrcodeByIronBarcode.png");

        // Check if any QR codes are found
        if (results != null)
        {
            // Loop through each result and print extracted text
            foreach (BarcodeResult result in results)
            {
                Console.WriteLine("Extracted text from QR Code is: " + result.Text);
            }
        }
    }
}
Imports System
Imports IronBarCode

Friend Class Program
	Shared Sub Main()
		' Read QR code from an image file
		Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\QrcodeByIronBarcode.png")

		' Check if any QR codes are found
		If results IsNot Nothing Then
			' Loop through each result and print extracted text
			For Each result As BarcodeResult In results
				Console.WriteLine("Extracted text from QR Code is: " & result.Text)
			Next result
		End If
	End Sub
End Class
$vbLabelText   $csharpLabel

IronBarcode renvoie un Enumerable en tant que résultat de la lecture des codes QR. Nous devons passer en boucle à travers le Enumerable pour récupérer chaque résultat. Cette fonctionnalité est avantageuse pour lire des codes QR à partir d'un document ou d'une image qui contient plus d'un code QR.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 9: IronBarcode's QR Code Scanning Execution Time

class="content__image-caption">Le temps que prend IronBarcode pour lire/numériser tous les codes QR à partir d'un document

Il faut 3136 ms ou 3,1 secondes avec IronBarcode.

Lire un code QR à l'aide de QrCoder

La bibliothèque QrCoder ne fournit pas de fonctionnalité pour lire ou scanner un code QR.

Lire un code-barres à l'aide d'IronBarcode

Le code suivant scannera le code-barres à l'aide de IronBarcode.

using System;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Read barcode from an image file
        BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");

        // Check if any barcodes are found
        if (results != null)
        {
            // Loop through each result and print extracted text
            foreach (BarcodeResult result in results)
            {
                Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
            }
        }
    }
}
using System;
using IronBarCode;

class Program
{
    static void Main()
    {
        // Read barcode from an image file
        BarcodeResults results = BarcodeReader.Read(@"D:\Barcode Images\BarcodeByIronBarcode.png");

        // Check if any barcodes are found
        if (results != null)
        {
            // Loop through each result and print extracted text
            foreach (BarcodeResult result in results)
            {
                Console.WriteLine("Text Extracted from Barcode is: " + result.Text);
            }
        }
    }
}
Imports System
Imports IronBarCode

Friend Class Program
	Shared Sub Main()
		' Read barcode from an image file
		Dim results As BarcodeResults = BarcodeReader.Read("D:\Barcode Images\BarcodeByIronBarcode.png")

		' Check if any barcodes are found
		If results IsNot Nothing Then
			' Loop through each result and print extracted text
			For Each result As BarcodeResult In results
				Console.WriteLine("Text Extracted from Barcode is: " & result.Text)
			Next result
		End If
	End Sub
End Class
$vbLabelText   $csharpLabel

IronBarcode retourne Enumerable en tant que résultat de la lecture des codes-barres. Nous devons passer en boucle à travers celui-ci pour obtenir chaque résultat. Il est avantageux pour lire le code-barres à partir 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 :

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 10: Execution time for IronBarcode Scan one or more barcodes

class="content__image-caption">Le temps qu'IronBarcode prend pour scanner un code-barres contenu dans un PDF ou une image

Lire un code-barres à l'aide de QrCoder

La bibliothèque QrCoder ne fournit pas la fonctionnalité de lecture ou de scan de code-barres.

Maintenant, discutons des options de licence des deux bibliothèques.

Licences

Licences for IronBarcode

IronBarcode est gratuit pour le développement. Cependant, il nécessite une licence pour le déploiement en dehors de l'environnement de développement de Visual Studio. Le prix de la licence varie de $liteLicense à $unlimitedLicense (USD). Vous pouvez obtenir une réduction si vous achetez la suite complète Iron.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 11: Iron Licenses

class="content__image-caption">Vérifiez la [page des licences](/csharp/barcode/licensing/) de IronBarcode pour plus d'informations sur les licences disponibles.

Licences for QrCoder

QrCoder est open source, par conséquent, ne nécessite 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.

Quand utiliser QrCoder

Si nous avons seulement besoin 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 frais de paiement ou d'abonnement.

Quand utiliser IronBarcode

IronBarcode est une excellente option lorsque nous avons besoin de fonctionnalités au-delà de la génération de codes QR, comme :

  • Lire des codes-barres et codes QR simples ou multiples à partir d'images ou de fichiers PDF.
  • Correction d'image pour inclinaison, orientation, bruit, basse résolution, contraste, etc.
  • Création de codes-barres et leur application à des images ou documents PDF.
  • Intégrer des codes-barres dans des documents HTML.
  • Stylisation des codes-barres et ajout de texte d'annotation.
  • Écriture des codes QR permettant d'ajouter des logos, des couleurs, et un alignement QR avancé.

Résumé

Le tableau ci-dessous compare IronBarcode et QrCoder.

class="content-img-align-center"> A Comparison Between IronBarcode and QrCoder C# - Figure 12: Comparing the two libraries

class="content__image-caption">Comparaison côte à côte de IronBarcode et QrCoder

Conclusion

IronBarcode pour .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 standards de codes-barres et de codes QR, dont 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 pour la rotation, le bruit, la distorsion et l'inclinaison pour améliorer la vitesse et la précision. IronBarcode est compatible avec les systèmes 32 et 64 bits, tous les langages .NET, et une variété de plateformes, y compris les applications de bureau, console, cloud, mobile et web. Elle permet également aux développeurs d'écrire des codes-barres et des codes QR pour des documents PDF, JPG, TIFF, GIF, BMP, PNG et HTML, et de modifier la couleur du texte, la taille, la rotation et la qualité. 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 propose trois options de licences, dont une version Lite pour une utilisation individuelle, un package Professional pour des équipes de jusqu'à 10 développeurs, et un package Unlimited pour les entreprises.

QRCoder est une bibliothèque C# .NET qui génère des codes QR basés sur ISO/IEC 18004 sans dépendances sur d'autres bibliothèques. Elle propose plusieurs classes de rendu de codes QR, y compris QRCode, ArtQRCode, AsciiQRCode, et d'autres. Cependant, tous les renderers ne sont pas disponibles sur tous les frameworks cibles, et les versions .NET Standard/.NET >=5.0 ont certaines contraintes. QRCoder est gratuit et ne nécessite pas de licence.

IronBarcode est plus polyvalent que QrCoder car il offre un support pour toutes les versions de frameworks .NET, a une gamme plus étendue de fonctionnalités, et fournit une couverture SaaS et OEM Redistribution. IronBarcode fournit également une documentation complète et une assistance 24/7, alors que QRCoder ne le fait pas. IronBarcode a des frais de licence, mais il est raisonnable compte tenu des fonctionnalités et du support qu'il offre.

IronBarcode is a library developed by Iron Software, which also offers other useful libraries, including IronPDF, IronXL, IronOCR, and IronWebScraper. Achetez la suite complète Iron pour obtenir les cinq produits à un prix remarquable.

En résumé, IronBarcode est mieux adapté pour 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 codes QR.

Veuillez noterQrCoder est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié à, approuvé par, ou parrainé par QrCoder. 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 générer des codes QR en C# ?

Pour générer des codes QR en C#, vous pouvez utiliser la bibliothèque QrCoder, qui est une bibliothèque simple et open-source. Alternativement, vous pouvez utiliser IronBarcode pour des fonctionnalités plus avancées, telles que le style des codes QR et leur intégration dans des documents.

Quels sont les avantages d'utiliser IronBarcode par rapport à QrCoder ?

IronBarcode offre des fonctionnalités étendues telles que la lecture de codes-barres et de codes QR, la correction d'image et l'intégration de codes-barres dans des PDF et d'autres documents. Il est idéal pour les projets nécessitant des opérations complètes de codes-barres et de codes QR.

Y a-t-il une bibliothèque gratuite pour générer des codes QR en C# ?

Oui, QrCoder est une bibliothèque gratuite et open-source pour générer des codes QR en C#. Elle ne nécessite pas de licence, ce qui en fait une option économique pour une génération simple de codes QR.

Puis-je lire des codes QR en utilisant QrCoder ?

Non, QrCoder ne prend pas en charge la lecture ou le balayage des codes QR. Pour lire des codes QR, vous pouvez utiliser IronBarcode, qui offre cette fonctionnalité ainsi que des fonctionnalités supplémentaires.

Comment installer une bibliothèque de codes QR dans un projet .NET ?

Vous pouvez installer QrCoder en utilisant la console du gestionnaire de packages NuGet avec la commande Install-Package QRCoder. Pour IronBarcode, utilisez Install-Package IronBarcode.

Quelle est la différence de temps d'exécution entre IronBarcode et QrCoder pour la génération de codes QR ?

QrCoder est plus rapide, mettant environ 592 ms pour générer et enregistrer un code QR, tandis qu'IronBarcode prend environ 3503 ms. Cependant, IronBarcode offre des fonctionnalités plus avancées au-delà de la simple génération de codes QR.

IronBarcode nécessite-t-il une licence pour le déploiement ?

Oui, IronBarcode nécessite une licence pour le déploiement en dehors de l'environnement de développement Visual Studio. Il offre différentes options de licence, y compris les forfaits Lite, Professional, et Unlimited.

Quelles fonctionnalités IronBarcode offre-t-il pour le traitement des codes-barres ?

IronBarcode permet la lecture et l'écriture de codes-barres et de codes QR, la correction d'image, les options de style, et la capacité d'intégrer des codes-barres dans des documents tels que des PDF, en faisant un outil complet pour le traitement des codes-barres.

Quelle bibliothèque devrais-je choisir pour une génération simple de codes QR en C# ?

Pour une génération simple de codes QR, QrCoder est un choix adapté en raison de sa facilité d'utilisation et de sa licence gratuite. Cependant, pour des tâches plus avancées, IronBarcode est recommandé.

Puis-je intégrer des codes QR dans des PDF en utilisant C# ?

Oui, vous pouvez utiliser IronBarcode pour intégrer des codes QR dans des PDF. Il fournit des fonctionnalités pour lire et écrire des codes QR et des codes-barres et les intégrer sans heurt dans des documents.

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