using IronQr;
using IronSoftware.Drawing;
// Create a QR Code object
QrCode myQr = QrWriter.Write("hello world");
// Save QR Code as a Bitmap
AnyBitmap qrImage = myQr.Save();
// Save QR Code Bitmap as File
qrImage.SaveAs("qr.png");
Comment générer un code QR à l'aide de QRCoder comparé à IronQR dans .NET 6
Publié avril 29, 2024
Partager:
Génération de code QR en C# ;
La création de codes QR dans les applications C# est une exigence courante pour les développeurs, en particulier pour les applications impliquant l'identification de produits, la billetterie ou le partage facile d'URL et d'autres données. Il existe plusieurs bibliothèques permettant de générer des codes QR en C#. Deux options notables sontQRCoder etIronQR. Dans cet article, nous allons comparer en détail ces bibliothèques, en examinant leurs fonctionnalités, leur facilité d'utilisation, leurs performances et d'autres facteurs pertinents pour les développeurs travaillant avec .NET 6. Dans cet article, nous allons nous plonger dans une comparaison détaillée de ces bibliothèques, en examinant leurs fonctionnalités, leur facilité d'utilisation, leur licence, et plus encore, avec des exemples de code pour illustrer leur utilisation.
Comment générer un code QR à l'aide de QRCoder comparé à IronQR dans .NET 6
Créer un nouveau projet Visual Studio pour générer un code QR
Installer les paquets NuGet de QRCoder et d'IronQR pour les comparer
Créer des codes QR à l'aide de QRCoder et IronQR
Options de personnalisation avec QRCoder et IronQR
QRCoder
QRCoder est une bibliothèque open-source écrite en C# et une implémentation de QR Code qui vous permet de générer des QR Codes tels que définis par ISO/IEC 18004 dans n'importe quelle application .NET. Il s'agit d'une bibliothèque légère et facile à utiliser, qui ne dépend pas d'autres bibliothèques ou piles de réseaux.
Voici les principales caractéristiques et avantages de QRCoder :
1. Facilité d'utilisation
C#QRCoder offre une API simple et intuitive qui permet aux développeurs de générer facilement des codes QR et du texte de code QR avec un minimum d'effort. Sa simplicité permet aux développeurs de tous niveaux d'intégrer rapidement la génération de codes QR dans leurs projets.
2. Options de personnalisation étendues
L'une des principales caractéristiques de QRCoder est sa capacité à personnaliser les codes QR en fonction d'exigences spécifiques. Les développeurs peuvent ajuster des paramètres tels que le niveau de correction des 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 différents formats d'encodage, ce qui permet 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 traiter un large éventail de formats de données.
4. Sortie de haute qualité
Les codes QR générés par C# QRCoder sont de haute qualité, ce qui garantit leur lisibilité et leur fiabilité sur différents appareils et dans différentes conditions de lecture. Cette fiabilité est cruciale pour les applications où les codes QR servent de passerelle entre les interactions physiques et numériques.
5. Source ouverte et développement actif
C# QRCoder est un projet open-source, permettant aux développeurs de contribuer à son développement et garantissant des améliorations et des mises à jour continues. Cet engagement actif 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 de codes QR en C# développée et maintenue parIron Software. Il 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 caractéristiques clés d'IronQR :
Génération de codes QR
IronQR permet une personnalisation très poussée desGénération de codes QR. Vous pouvez créer des codes QR avec diverses options, telles que le redimensionnement, les marges, les bordures et la recoloration.
using IronQr;
using IronSoftware.Drawing;
// 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;
// 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
' Prepare a QR Code object
Private theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Private myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
$vbLabelText $csharpLabel
Lecture du code QR
IronQR utilise un modèle avancé d'apprentissage automatique pour la détection des codes QR. Ce modèle garantit une lecture précise et rapide des codes QR. IronQR prend en chargelire les codes QR à partir de différents formats d'image, notamment JPG, PNG, SVG, bmp et des images multipages telles que gif et tiff.
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
// 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 an get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
// 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 an get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
' Read QR code
Private inputBmp = AnyBitmap.FromFile("awesome.png")
' Load the image into QrImageInput
Private imageInput As New QrImageInput(inputBmp)
' Create the QR Reader object
Private reader As New QrReader()
' Read the Input an get all embedded QR Codes
Private results As IEnumerable(Of QrResult) = reader.Read(imageInput)
$vbLabelText $csharpLabel
Compatibilité multiplateforme
Bureau : Fonctionne avec les applications de bureau Windows(WPF ET MAUI).
Mobile : Compatible avec Xamarin et MAUI.
Web : Prend en charge Blazor et WebForms.
Console : Environnements d'applications et de bibliothèques.
Cloud : Docker, Azure et AWS.
Encodage des données
Vous pouvez encoder différents types de données dans les codes QR, notamment du texte, des URL, des octets et des nombres.
Correction des erreurs
IronQR fournit des messages d'erreur détaillés et des options de correction d'erreur personnalisées.
Des millions de personnes font confiance à IronQR, dont la fiabilité et la facilité d'utilisation sont reconnues par les ingénieurs du monde entier. Pour commencer à utiliser IronQR, vous pouvez l'installer viaNuGet.
Étape 1 : Créer un nouveau projet Visual Studio pour générer un code QR
Pour commencer avec le code, créons un fichierVisual Studio Projet. 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 des solutions. Sélectionnez le chemin d'accès pour stocker les fichiers du projet
Sélectionnez la version .NET requise. J'opterai pour le dernier Framework .NET 8 au moment de la rédaction de cet article.
Une fois que vous avez cliqué sur le bouton de création, le projet est créé et prêt à être développé.
Étape 2 : Installer les paquets NuGet QRCoder et IronQR
LesQRCoder Les paquets NuGet peuvent être installés à l'aide du gestionnaire de paquets NuGet de Visual Studio, comme indiqué ci-dessous.
Vous pouvez également l'installer à partir de la console du gestionnaire de paquets NuGet en utilisant la commande suivante
dotnet add package QRCoder --version 1.4.3
dotnet add package QRCoder --version 1.4.3
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package QRCoder --version 1.4.3
$vbLabelText $csharpLabel
Le paquetage NuGet QRCoder est disponible sur le site Web de NuGet à l'adresse suivante
LesIronQR peut également être installé de la même manière en utilisant le gestionnaire de paquets NuGet de Visual Studio, comme indiqué ci-dessous.
Toujours à partir de la console du gestionnaire de paquets NuGet, utilisez la commande suivante
dotnet add package IronQR --version 2024.4.1
dotnet add package IronQR --version 2024.4.1
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronQR --version 2024.4.1
$vbLabelText $csharpLabel
Étape 3 : Créer des codes QR à l'aide de QRCoder et IronQR
La création de codes QR dans les deux bibliothèques nécessite un code simple
QRCoder
Le code suivant montre comment générer notre premier code QR à l'aide de QRCoder
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20);
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20);
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
Imports QRCoder
Imports System.Drawing
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
Using qrGenerator As New QRCodeGenerator()
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
Using qrCode = New QRCoder.BitmapByteQRCode(qrCodeData)
Dim qrCodeImage = qrCode.GetGraphic(20)
Dim file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Sub
End Class
End Namespace
$vbLabelText $csharpLabel
Explication du code
Nous créons QRCodeGenerator et appelons la méthode CreateQrCode pour générer le graphique du code QR
Nous utilisons ensuite la méthode QRCoder.BitmapByteQRCode pour obtenir le tableau d'octets de la méthode GetGraphic
Nous enregistrons ensuite le flux d'octets sous forme d'image à l'aide de la méthode Image.FromStream
Le code QR obtenu est indiqué ci-dessous
Sortie
IronQR
Le code suivant montre comment générer un code QR à l'aide d'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
$vbLabelText $csharpLabel
Comme vous pouvez déjà le constater, il y a une différence dans la quantité de code. La génération de code IronQR nécessite moins de code.
Explication du code
Nous créons le code QR à l'aide de QrWriter.Write() et transmet le contenu.
Enregistrez ensuite le code QR dans la mémoire à l'aide du bouton Enregistrer() méthode.
Enfin, nous enregistrons l'image à l'aide de SaveAs() méthode ;
Sortie
La sortie comporte un filigrane IronQR puisque 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 proposent des options de personnalisation. Examinons quelques options disponibles
Nous pouvons définir les couleurs du code QR dans QRCoder comme ci-dessous :
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20, [255,0,0], [0,255, 0]); // can also use html hex color notation
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
using QRCoder;
using System.Drawing;
namespace QRCoderVsIronQR
{
public class Program
{
public static void Main()
{
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
using (var qrCode = new QRCoder.BitmapByteQRCode(qrCodeData))
{
var qrCodeImage = qrCode.GetGraphic(20, [255,0,0], [0,255, 0]); // can also use html hex color notation
var file = Image.FromStream(new MemoryStream(qrCodeImage));
file.Save("QrCoderDemo1.png");
}
}
}
}
Imports QRCoder
Imports System.Drawing
Namespace QRCoderVsIronQR
Public Class Program
Public Shared Sub Main()
Using qrGenerator As New QRCodeGenerator()
Using qrCodeData As QRCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q)
Using qrCode = New QRCoder.BitmapByteQRCode(qrCodeData)
Dim qrCodeImage = qrCode.GetGraphic(20, (255,0,0), (0,255, 0)) ' can also use html hex color notation
Dim file = Image.FromStream(New MemoryStream(qrCodeImage))
file.Save("QrCoderDemo1.png")
End Using
End Using
End Using
End Sub
End Class
End Namespace
$vbLabelText $csharpLabel
Explication du code
Nous créons QRCodeGenerator et appelons la méthode CreateQrCode pour générer le graphique du code QR
Nous utilisons ensuite le code QRCoder.BitmapByteQRCode() pour obtenir le tableau d'octets de la méthode GetGraphic
Dans GetGraphic, nous pouvons définir les couleurs de l'arrière-plan et des lignes. Nous avons utilisé le rouge[255,0,0] Couleur R,G,B pour la couleur de la ligne et Vert[0,255,0] pour le contexte.
Nous enregistrons ensuite le flux d'octets sous forme d'image à l'aide de la fonction Image.FromStream() méthode
Le code QR obtenu est indiqué ci-dessous
Sortie
Nous pouvons définir des couleurs pour la génération du code QR IronQR comme le code suivant :
using IronQr;
using IronSoftware.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;
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
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
}
$vbLabelText $csharpLabel
Avec IronQR, il existe de nombreusesoptions de personnalisation. Dans le programme ci-dessus, nous avons essayé de personnaliser la couleur d'arrière-plan, la couleur du code QR et les marges. Nous pouvons également définir des dimensions.
Explication du code
Tout d'abord, nous créons l'objet option pour définir le niveau de correction des erreurs
Nous préparons ensuite le code QR avec QrWriter.Write() méthode
Nous définissons ensuite les options de style à l'aide de QrStyleOptions
Nous définissons la couleur d'arrière-plan, la couleur de premier plan, les marges, les dimensions et un logo pour le code QR
Nous enregistrons ensuite l'image du code QR sur le disque local.
Sortie
Licences
QRCoder est un paquetage sous licence MIT et est développé avec l'aide de la communauté. Cette formule convient aux 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 à utiliser dans les applications. Elle bénéficie du soutien deIron Software.
IronQR que l'on peut obtenir. La clé obtenue doit être placée dans le fichier appSettings.json ici :
{
"IronQR.License.LicenseKey":"myKey"
}
Conclusion
Choisir entre C#QRCoder etIronQR 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 codes QR 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 options de personnalisation étendues.
Si vous avez besoin d'une bibliothèque d'entreprise qui prenne en charge non seulement la génération de codes QR avec des options de personnalisation, mais aussi la lecture de codes QR, alorsIronQR serait le choix ultime. En fin de compte, avec la bibliothèque IronQR, ses nombreux avantages et ses fonctionnalités de soutien deIron Softwareles développeurs peuvent ainsi créer des applications d'entreprise en toute simplicité et en toute sérénité.
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT Comment créer une application de génération de code QR en C#
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier