Passer au contenu du pied de page
UTILISATION D'IRONQR

Comment générer un code QR en utilisant QRCoder par rapport à IronQR dans .NET 6

Génération de codes QR en C

Créer des codes QR dans les applications C# est une exigence courante pour les développeurs, notamment pour les applications impliquant l'identification de produits, la billetterie ou le partage d'URL et d'autres données facilement. Il existe plusieurs bibliothèques disponibles pour générer des codes QR en C#. Deux options notables sont QRCoder et IronQR. Ici, nous allons explorer les deux, en comparant leurs capacités, leur facilité d'utilisation, leur performance et d'autres facteurs pertinents pour les développeurs travaillant avec .NET 6. Dans cet article, nous allons approfondir une comparaison détaillée de ces bibliothèques, en examinant leurs fonctionnalités, leur facilité d'utilisation, leur licence, et plus, avec des exemples de code pour illustrer leur utilisation.

Comment générer un code QR en utilisant QRCoder par rapport à IronQR dans .NET 6

  1. Créez un nouveau projet Visual Studio pour générer un code QR
  2. Installez les packages NuGet QRCoder et IronQR pour la comparaison
  3. Créez des codes QR en utilisant QRCoder et IronQR
  4. Options de personnalisation avec QRCoder et IronQR

QRCoder

QRCoder est une bibliothèque open-source écrite en C# et fournit une implémentation de code QR qui vous permet de générer des codes QR tels que définis par ISO/IEC 18004 dans toute application .NET. C'est une bibliothèque légère et facile à utiliser sans dépendances à d'autres bibliothèques ou piles réseau.

Voici les principales caractéristiques et avantages de QRCoder :

1. Facilité d'utilisation

C# QRCoder offre une API simple et intuitive, facilitant ainsi aux développeurs la génération de codes QR/texte de code QR avec un minimum d'effort. Sa simplicité permet aux développeurs de tous niveaux de compétence d'intégrer rapidement la génération de codes QR dans leurs projets.

2. Options de personnalisation étendues

Une des caractéristiques remarquables de QRCoder est sa capacité à personnaliser les codes QR selon des exigences spécifiques. Les développeurs peuvent ajuster des paramètres tels que le niveau de correction d'erreurs, la taille, la couleur, et même intégrer des logos ou des images dans le code QR.

3. Formats d'encodage multiples

QRCoder prend en charge divers formats d'encodage, permettant aux développeurs d'encoder différents types de données dans les codes QR. Qu'il s'agisse de texte brut, d'URL, d'informations de contact ou d'identifiants Wi-Fi, QRCoder peut gérer une large gamme de formats de données.

4. Sortie de haute qualité

Les codes QR générés par C# QRCoder sont de haute qualité, garantissant lisibilité et fiabilité à travers différents appareils et conditions de numérisation. Cette fiabilité est cruciale pour les applications où les codes QR servent de pont entre les interactions physiques et numériques.

5. Open Source et développement actif

C# QRCoder est un projet open-source, permettant aux développeurs d'y contribuer et garantissant des améliorations et mises à jour continues. Cette participation active de la communauté favorise l'innovation et garantit que la bibliothèque reste pertinente dans le paysage technologique en constante évolution.

IronQR

IronQR est une puissante bibliothèque C# QR Code développée et maintenue par Iron Software. Elle permet aux ingénieurs logiciels C# de détecter, lire, et créer des codes QR dans les applications et sites web .NET. Voici quelques-unes des principales caractéristiques d'IronQR :

Génération de codes QR

IronQR permet une génération de codes QR hautement personnalisable. Vous pouvez créer des codes QR avec diverses options, telles que redimensionnement, marges, bordures, et recoloration.

using IronQr;
using IronSoftware.Drawing;

public class Program
{
    public static void Main()
    {
        // Prepare a QR Code object
        QrCode theQrGen = QrWriter.Write("Awesome IronQR");
        // Save QR Code to memory
        AnyBitmap myQrImage = theQrGen.Save();
        // Save QR Code image to disk
        myQrImage.SaveAs("awesome.png");
    }
}
using IronQr;
using IronSoftware.Drawing;

public class Program
{
    public static void Main()
    {
        // Prepare a QR Code object
        QrCode theQrGen = QrWriter.Write("Awesome IronQR");
        // Save QR Code to memory
        AnyBitmap myQrImage = theQrGen.Save();
        // Save QR Code image to disk
        myQrImage.SaveAs("awesome.png");
    }
}
$vbLabelText   $csharpLabel

Lecture de codes QR

IronQR utilise un modèle d'apprentissage automatique avancé pour la détection de code QR. Ce modèle garantit une lecture précise et rapide des codes QR. IronQR prend en charge la lecture des codes QR à partir de divers formats d'image, y compris JPG, PNG, SVG, bmp, et des images multipages comme gif et tiff.

using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // Read QR code
        var inputBmp = AnyBitmap.FromFile("awesome.png");
        // Load the image into QrImageInput
        QrImageInput imageInput = new QrImageInput(inputBmp);
        // Create the QR Reader object
        QrReader reader = new QrReader();
        // Read the Input and get all embedded QR Codes
        IEnumerable<QrResult> results = reader.Read(imageInput);
    }
}
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        // Read QR code
        var inputBmp = AnyBitmap.FromFile("awesome.png");
        // Load the image into QrImageInput
        QrImageInput imageInput = new QrImageInput(inputBmp);
        // Create the QR Reader object
        QrReader reader = new QrReader();
        // Read the Input and get all embedded QR Codes
        IEnumerable<QrResult> results = reader.Read(imageInput);
    }
}
$vbLabelText   $csharpLabel

Compatibilité multiplateforme

  1. Bureau : Fonctionne avec les applications de bureau Windows (WPF & MAUI).
  2. Mobile : Compatible avec Xamarin et MAUI.
  3. Web : Prend en charge Blazor et WebForms.
  4. Console : Environnements d'application et de bibliothèque.
  5. Cloud : Docker, Azure, et AWS.

Encodage des données

Vous pouvez encoder divers types de données dans les codes QR, y compris du texte, des URL, des octets, et des nombres.

Correction d'erreurs

IronQR fournit des messages d'erreur détaillés et des options de correction d'erreurs personnalisées.

Adopté par des millions de personnes, IronQR est approuvé par des ingénieurs du monde entier pour sa fiabilité et sa facilité d'utilisation. Pour commencer avec IronQR, vous pouvez l'installer via NuGet.

Étape 1 : Créez un nouveau projet Visual Studio pour générer un code QR

Pour commencer avec le code, créons un projet Visual Studio. Ouvrez Microsoft Visual Studio 2022 et sélectionnez l'option "Créer un nouveau projet".

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figure 1 - Open Visual Studio and click on Create a new project option

Sélectionnez le modèle d'application Console dans la liste des modèles

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figure 2 - Select the project type as Console App.

Indiquez ensuite le nom du projet et les noms de la solution. Sélectionnez le chemin pour enregistrer les fichiers du projet

Comment générer un code QR avec QRCoder (comparaison avec IronQR ) dans .NET 6 : Figure 3 - Configurez votre projet en spécifiant son nom, son emplacement et le nom de la solution, puis cliquez sur Suivant.

Sélectionnez la version .NET requise. Je vais opter pour le dernier framework .NET 8 au moment de la rédaction de cet article.

Comment générer un code QR avec QRCoder (comparaison avec IronQR) sous .NET 6 : Figure 4 - Sélectionnez la dernière version de .NET Framework et cliquez sur le bouton Créer.

Une fois que vous cliquez sur le bouton créer, le projet est créé et prêt pour le développement.

Étape 2 : Installez les packages NuGet QRCoder et IronQR

Le package NuGet QRCoder peut être installé en utilisant le gestionnaire de packages NuGet de Visual Studio comme indiqué ci-dessous.

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figure 5 - Install QRCoder using the Manage NuGet Package for Solution by searching QRCoder in the search bar of NuGet Package Manager, then select the project and click on the Install button.

Ou installez-le à partir de la console du gestionnaire de packages NuGet en utilisant la commande suivante

dotnet add package QRCoder --version 1.4.3

Le package NuGet QRCoder est disponible sur le site web NuGet ici

Comment générer un code QR avec QRCoder (comparaison avec IronQR) en .NET 6 : Figure 6 - Package NuGet QRCoder

IronQR peut également être installé de la même manière en utilisant le gestionnaire de packages NuGet de Visual Studio, montré ci-dessous.

How to Generate QR code using QRCoder compare to IronQR in .NET 6: Figure 7 - Install IronQR using the Manage NuGet Package for Solution by searching IronQR in the search bar of NuGet Package Manager, then select the project and click on the Install button.

En outre, à partir de la console du gestionnaire de packages NuGet, utilisez la commande suivante

dotnet add package IronQR --version 2024.4.1

Comment générer un code QR avec QRCoder comparé à IronQR dans .NET 6 : Figure 8 - Package NuGet IronQR

Étape 3 : Créez des codes QR avec QRCoder et IronQR

Créer des codes QR dans les deux bibliothèques nécessite un code simple, voyons ça

QRCoder

Le code suivant montre comment générer notre premier code QR en utilisant QRCoder

using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {
                // Generate the QR code's graphic and store it in a byte array
                byte[] qrCodeImage = qrCode.GetGraphic(20);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {
                // Generate the QR code's graphic and store it in a byte array
                byte[] qrCodeImage = qrCode.GetGraphic(20);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

Explication du code

  1. Initialisez le QRCodeGenerator et appelez la méthode CreateQrCode pour générer des données de code QR.
  2. Utilisez la classe BitmapByteQRCode pour générer un tableau d'octets à partir des données du code QR en utilisant la méthode GetGraphic.
  3. Convertissez le tableau d'octets en une image en utilisant Image.FromStream.
  4. Enregistrez l'image générée sur le disque.

Sortie

Comment générer un code QR avec QRCoder comparé à IronQR dans .NET 6 : Figure 9 - Résultat : Image du code QR générée avec la bibliothèque QRCoder.

IronQR

Le code suivant montre comment générer un code QR en utilisant IronQR :

using IronQr;
using IronSoftware.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Prepare a QR Code object
            QrCode theQrGen = QrWriter.Write("Awesome IronQR");
            // Save QR Code to memory
            AnyBitmap myQrImage = theQrGen.Save();
            // Save QR Code image to disk
            myQrImage.SaveAs("awesome.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Prepare a QR Code object
            QrCode theQrGen = QrWriter.Write("Awesome IronQR");
            // Save QR Code to memory
            AnyBitmap myQrImage = theQrGen.Save();
            // Save QR Code image to disk
            myQrImage.SaveAs("awesome.png");
        }
    }
}
$vbLabelText   $csharpLabel

Comme vous pouvez déjà le voir, la différence dans la quantité de code. La génération de code QR avec IronQR nécessite moins de code.

Explication du code

  1. Créez le code QR en utilisant la méthode QrWriter.Write, en passant le contenu souhaité.
  2. Enregistrez le code QR en mémoire en utilisant la méthode Save.
  3. Enregistrez l'image du code QR sur le disque en utilisant SaveAs.

Sortie

La sortie a un filigrane IronQR car j'utilise une version d'essai de la bibliothèque. Avec une version sous licence, cela sera supprimé.

Comment générer un code QR avec QRCoder comparé à IronQR dans .NET 6 : Figure 10 - Résultat : Image du code QR générée avec IronQR

Étape 4 : Options de personnalisation avec QRCoder et IronQR

Les deux bibliothèques prennent en charge les options de personnalisation. Regardons quelques options disponibles

Nous pouvons définir les couleurs des codes QR dans QRCoder comme ci-dessous :

using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {                
                // Generate the QR code's graphic, specifying foreground and background colors
                byte[] qrCodeImage = qrCode.GetGraphic(20, Color.Red, Color.Green);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
using QRCoder;
using System.Drawing;
using System.IO;

namespace QRCoderVsIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Initialize QRCodeGenerator
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            // Create QR code data
            using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
            // Initialize the QR code with the data
            using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
            {                
                // Generate the QR code's graphic, specifying foreground and background colors
                byte[] qrCodeImage = qrCode.GetGraphic(20, Color.Red, Color.Green);

                // Convert the byte array to an image format and save it to disk
                using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
                {
                    file.Save("QrCoderDemo1.png");
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

Explication du code

  1. Initialisez le QRCodeGenerator et appelez la méthode CreateQrCode pour générer des données de code QR.
  2. Utilisez la classe BitmapByteQRCode pour générer un tableau d'octets à partir des données du code QR en utilisant la méthode GetGraphic, en spécifiant les couleurs de premier plan (rouge) et d'arrière-plan (vert).
  3. Convertissez le tableau d'octets en une image en utilisant Image.FromStream.
  4. Enregistrez l'image générée sur le disque.

Sortie

Comment générer un code QR avec QRCoder comparé à IronQR dans .NET 6 : Figure 11 - Résultat : Image de code QR colorée générée à l'aide des options de personnalisation de QRCoder.

Nous pouvons définir les couleurs pour la génération de code QR IronQR comme suit :

using IronQr;
using IronSoftware.Drawing;
using System.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Set options
            QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);

            // Create QR
            QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);

            // Style options
            AnyBitmap logoBmp = new AnyBitmap("logo.png");
            QrStyleOptions style = new QrStyleOptions
            {
                BackgroundColor = Color.Aqua,
                Dimensions = 300, // px
                Margins = 10, // px
                Color = Color.Red,
                Logo = new QrLogo
                {
                    Bitmap = logoBmp,
                    Width = 100,
                    Height = 100,
                    CornerRadius = 2
                }
            };

            // Save QR Code
            AnyBitmap qrImage = myQr.Save(style);
            // Save QR Code to local disk
            qrImage.SaveAs("advancedQr.png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using System.Drawing;

namespace QrCodeWithIronQR
{
    public class Program
    {
        public static void Main()
        {
            // Set options
            QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);

            // Create QR
            QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);

            // Style options
            AnyBitmap logoBmp = new AnyBitmap("logo.png");
            QrStyleOptions style = new QrStyleOptions
            {
                BackgroundColor = Color.Aqua,
                Dimensions = 300, // px
                Margins = 10, // px
                Color = Color.Red,
                Logo = new QrLogo
                {
                    Bitmap = logoBmp,
                    Width = 100,
                    Height = 100,
                    CornerRadius = 2
                }
            };

            // Save QR Code
            AnyBitmap qrImage = myQr.Save(style);
            // Save QR Code to local disk
            qrImage.SaveAs("advancedQr.png");
        }
    }
}
$vbLabelText   $csharpLabel

Avec IronQR, il existe de nombreuses options de personnalisation. Dans le programme ci-dessus, nous avons essayé de personnaliser la couleur de l'arrière-plan, la couleur du code QR, les marges. Nous pouvons également définir les dimensions.

Explication du code

  1. Tout d'abord, créez l'objet QrOptions pour définir le niveau de correction d'erreur.
  2. Préparez le code QR avec la méthode QrWriter.Write.
  3. Définissez les options de style avec QrStyleOptions.
  4. Définissez la couleur de l'arrière-plan, la couleur de l'avant-plan, les marges, les dimensions, et même un logo pour le code QR.
  5. Enregistrez l'image du code QR sur le disque local.

Sortie

Comment générer un code QR avec QRCoder comparé à IronQR dans .NET 6 : Figure 12 - Résultat : Image de code QR colorée générée avec IronQR et ses options de personnalisation.

Licences

QRCoder est un package basé sur une licence MIT et est développé avec l'aide de la communauté. Ce package est bon pour les projets à petit budget. L'utilisateur doit attendre que la communauté résolve les problèmes ou peut corriger et pousser le code vers le dépôt Git avec des demandes d'extraction approuvées.

IronQR nécessite une licence. Elle bénéficie du soutien de Iron Software.

Une licence d'essai IronQR peut être obtenue. La clé obtenue doit être placée dans le fichier appSettings.json ici :

{
   "IronQr.License.LicenseKey": "myKey"
}

Conclusion

Le choix entre C# QRCoder et IronQR dépend en fin de compte des exigences spécifiques de votre projet. Si vous avez besoin d'une bibliothèque de génération de QR Code gratuite et open source avec de nombreuses options de personnalisation, alors C# QRCoder pourrait être le choix préféré en raison de sa simplicité et de ses vastes options de personnalisation.

Si vous avez besoin d'une bibliothèque de niveau entreprise qui prend en charge non seulement la génération de codes QR avec des options de personnalisation mais aussi la lecture de codes QR, alors IronQR serait le choix ultime. Avec la bibliothèque IronQR, ses nombreux avantages, et la fonctionnalité de support de Iron Software, les développeurs peuvent écrire des applications d'entreprise en toute tranquillité et avec facilité.

Questions Fréquemment Posées

Comment puis-je générer des codes QR en C# ?

Vous pouvez générer des codes QR en C# en utilisant des bibliothèques comme QRCoder et IronQR. QRCoder est open-source et offre une personnalisation étendue, tandis qu'IronQR propose des fonctionnalités avancées et un support multiplateforme, idéal pour les applications de niveau entreprise.

Quels sont les avantages d'utiliser QRCoder dans les projets .NET 6 ?

QRCoder est avantageux pour les projets .NET 6 en raison de sa facilité d'utilisation, de ses nombreuses options de personnalisation, et de sa prise en charge de multiples formats d'encodage. Il est également gratuit sous la licence MIT, ce qui le rend adapté aux projets à budget limité.

Comment puis-je personnaliser les codes QR à l'aide d'IronQR ?

IronQR permet aux développeurs de personnaliser les codes QR en ajustant des paramètres tels que la couleur de fond, la couleur du code QR, les marges, les dimensions, et même en ajoutant des logos pour améliorer l'apparence du code QR.

Quel est l'avantage d'IronQR pour les applications multiplateformes ?

IronQR prend en charge les applications multiplateformes, y compris les postes de travail (WPF et MAUI), les mobiles (Xamarin et MAUI), le Web (Blazor et WebForms), les applications console, et les environnements cloud comme Docker, Azure, et AWS, ce qui le rend idéal pour des besoins de développement polyvalents.

Quelles étapes sont nécessaires pour configurer un projet de génération de codes QR dans Visual Studio ?

Pour configurer un projet de génération de codes QR dans Visual Studio, vous devez installer les packages NuGet nécessaires pour QRCoder ou IronQR, selon votre choix. L'article fournit des instructions pas à pas et des échantillons de code pour vous guider tout au long du processus.

Comment IronQR améliore-t-il la correction d'erreurs des codes QR ?

IronQR améliore la correction d'erreurs des codes QR en fournissant des options détaillées pour assurer une lecture précise, même si le code QR est endommagé ou partiellement masqué. Cela le rend très fiable pour les applications critiques.

Quelles sont les options de licence disponibles pour IronQR?

IronQR nécessite une licence commerciale, soutenue par Iron Software, avec la possibilité d'obtenir une licence d'essai à des fins d'évaluation. Cela garantit que les projets de niveau entreprise ont accès à un support et à des fonctionnalités robustes.

Quelle bibliothèque devrais-je choisir pour un projet de code QR simple ?

Pour les projets de codes QR simples, QRCoder est recommandé en raison de sa simplicité, de sa facilité d'utilisation, et de son rapport coût-efficacité, étant une bibliothèque open-source sous licence MIT.

IronQR peut-il lire des codes QR à partir de divers formats d'image ?

Oui, IronQR peut lire des codes QR à partir de divers formats d'image, en utilisant un modèle de Machine Learning avancé pour assurer une lecture rapide et précise sur différentes plateformes.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me