
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
- Créez un nouveau projet Visual Studio pour générer un code QR
- Installez les packages NuGet QRCoder et IronQR pour la comparaison
- Créez des codes QR en utilisant QRCoder et IronQR
- 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, ce qui permet aux développeurs de générer facilement des codes QR/texte 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");
}
}Imports IronQr
Imports IronSoftware.Drawing
Public Class Program
Public Shared Sub Main()
' Prepare a QR Code object
Dim theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Dim myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
End Sub
End ClassLecture 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);
}
}Imports IronQr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Public Class Program
Public Shared Sub Main()
' Read QR code
Dim inputBmp = AnyBitmap.FromFile("awesome.png")
' Load the image into QrImageInput
Dim imageInput As New QrImageInput(inputBmp)
' Create the QR Reader object
Dim reader As New QrReader()
' Read the Input and get all embedded QR Codes
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
End Sub
End ClassCompatibilité multiplateforme
- Bureau : Fonctionne avec les applications de bureau Windows (WPF & MAUI).
- Mobile : Compatible avec Xamarin et MAUI.
- Web : Prend en charge Blazor et WebForms.
- Console : Environnements d'application et de bibliothèque.
- 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".

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

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

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

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.

Ou installez-le à partir de la console du gestionnaire de packages NuGet en utilisant la commande suivante
Le package NuGet QRCoder est disponible sur le site web NuGet ici

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

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

É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 QRCoderVs IronQR
{
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");
}
}
}
}
}
Explication du code
- Initialisez le
QRCodeGeneratoret appelez la méthodeCreateQrCodepour générer les données du code QR. - Utilisez la classe
BitmapByteQRCodepour générer un tableau d'octets à partir des données du code QR en utilisant la méthodeGetGraphic. - Convertissez le tableau d'octets en une image à l'aide de
Image.FromStream. - Enregistrez l'image générée sur le disque.
Sortie

IronQR
Le code suivant montre comment générer un code QR en utilisant IronQR :
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWith IronQR
{
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");
}
}
}
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
- Créez le code QR en utilisant la méthode
QrWriter.Write, en passant le contenu souhaité. - Enregistrez le code QR en mémoire en utilisant la méthode
Save. - 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é.

É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 QRCoderVs IronQR
{
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");
}
}
}
}
}
Explication du code
- Initialisez le
QRCodeGeneratoret appelez la méthodeCreateQrCodepour générer les données du code QR. - Utilisez la classe
BitmapByteQRCodepour générer un tableau d'octets à partir des données du code QR en utilisant la méthodeGetGraphic, en spécifiant les couleurs de premier plan (rouge) et de fond (vert). - Convertissez le tableau d'octets en une image à l'aide de
Image.FromStream. - Enregistrez l'image générée sur le disque.
Sortie

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 QrCodeWith IronQR
{
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");
}
}
}
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
- Tout d'abord, créez l'objet
QrOptionspour définir le niveau de correction d'erreur. - Préparez le code QR avec la méthode
QrWriter.Write. - Définissez les options de style avec
QrStyleOptions. - 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.
- Enregistrez l'image du code QR sur le disque local.
Sortie

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

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.
Articles connexes


