Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
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 sont QRCoder et IronQR. 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.
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
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 :
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.
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.
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.
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.
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 est une puissante bibliothèque de codes QR en C# développée et maintenue par Iron 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 :
IronQR permet une personnalisation très poussée des Gé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")
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 charge lire 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)
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.
Vous pouvez encoder différents types de données dans les codes QR, notamment du texte, des URL, des octets et des nombres.
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 via NuGet.
Pour commencer avec le code, créons un fichier Visual 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é.
Les QRCoder 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
Le paquetage NuGet QRCoder est disponible sur le site Web de NuGet à l'adresse suivante
Les IronQR 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
La création de codes QR dans les deux bibliothèques nécessite un code simple
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
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 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
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.
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.
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é.
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
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
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
}
Avec IronQR, il existe de nombreuses options 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.
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
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 de Iron Software.
IronQR que l'on peut obtenir. La clé obtenue doit être placée dans le fichier appSettings.json ici :
{
"IronQR.License.LicenseKey":"myKey"
}
{
"IronQR.License.LicenseKey":"myKey"
}
If True Then
"IronQR.License.LicenseKey":"myKey"
End If
Choisir 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 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, alors IronQR serait le choix ultime. En fin de compte, avec la bibliothèque IronQR, ses nombreux avantages et ses fonctionnalités de soutien de Iron Softwareles développeurs peuvent ainsi créer des applications d'entreprise en toute simplicité et en toute sérénité.
9 produits de l'API .NET pour vos documents de bureau