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, 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");
}
}
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 Class
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);
}
}
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 Class
Compatibilité 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
dotnet add package QRCoder --version 1.4.3
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
dotnet add package IronQR --version 2024.4.1

É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");
}
}
}
}
}
Imports QRCoder
Imports System.Drawing
Imports System.IO
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
' Initialize QRCodeGenerator
Using qrGenerator As New QRCodeGenerator()
' Create QR code data
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
' Initialize the QR code with the data
Using qrCode As New BitmapByteQRCode(qrCodeData)
' Generate the QR code's graphic and store it in a byte array
Dim qrCodeImage() As Byte = qrCode.GetGraphic(20)
' Convert the byte array to an image format and save it to disk
Using file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Using
End Sub
End Class
End Namespace
Explication du code
- Initialisez le
QRCodeGeneratoret appelez la méthodeCreateQrCodepour générer des données de 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 en utilisant
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 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");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Namespace QrCodeWithIronQR
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 Class
End Namespace
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 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");
}
}
}
}
}
Imports QRCoder
Imports System.Drawing
Imports System.IO
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
' Initialize QRCodeGenerator
Using qrGenerator As New QRCodeGenerator()
' Create QR code data
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
' Initialize the QR code with the data
Using qrCode As New BitmapByteQRCode(qrCodeData)
' Generate the QR code's graphic, specifying foreground and background colors
Dim qrCodeImage() As Byte = qrCode.GetGraphic(20, Color.Red, Color.Green)
' Convert the byte array to an image format and save it to disk
Using file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Using
End Sub
End Class
End Namespace
Explication du code
- Initialisez le
QRCodeGeneratoret appelez la méthodeCreateQrCodepour générer des données de 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 d'arrière-plan (vert). - Convertissez le tableau d'octets en une image en utilisant
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 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");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Drawing
Namespace QrCodeWithIronQR
Public Class Program
Public Shared Sub Main()
' Set options
Dim options As New QrOptions(QrErrorCorrectionLevel.Medium, 20)
' Create QR
Dim myQr As QrCode = QrWriter.Write("IronQR Generation Demo 1", options)
' Style options
Dim logoBmp As New AnyBitmap("logo.png")
Dim style As New QrStyleOptions With {
.BackgroundColor = Color.Aqua,
.Dimensions = 300,
.Margins = 10,
.Color = Color.Red,
.Logo = New QrLogo With {
.Bitmap = logoBmp,
.Width = 100,
.Height = 100,
.CornerRadius = 2
}
}
' Save QR Code
Dim qrImage As AnyBitmap = myQr.Save(style)
' Save QR Code to local disk
qrImage.SaveAs("advancedQr.png")
End Sub
End Class
End Namespace
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é.
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.




