Passer au contenu du pied de page
UTILISATION D'IRONQR

Comment générer des codes QR en C# avec un package NuGet

La génération de codes QR dans les applications .NET n'a jamais été aussi simple. Avec le bon package NuGet , vous pouvez créer des codes QR, personnaliser leur apparence et les enregistrer dans plusieurs formats de sortie en quelques lignes de code seulement. IronQR propose une génération de codes QR de niveau entreprise avec une prise en charge multiplateforme for .NET Core, .NET Framework et .NET 5-10.

Ce tutoriel explique comment installer le package NuGet IronQR et commencer immédiatement à générer des codes QR. Que vous développiez des systèmes de gestion des stocks, des plateformes de billetterie événementielle ou des applications marketing, IronQR fournit les outils nécessaires à une mise en œuvre professionnelle des codes QR.

Commencez avec IronQR maintenant.
green arrow pointer

Comment installer un package NuGet pour code QR ?

L'installation d'IronQR via le Package Manager NuGet ne prend que quelques secondes. Ouvrez la console du gestionnaire de packages NuGet dans Visual Studio et exécutez la commande suivante, ou utilisez la commande dotnet add package pour les environnements CLI :

Install-Package IronQR

Le package NuGet gère automatiquement toutes les dépendances, garantissant ainsi la compatibilité avec vos frameworks cibles. IronQR prend en charge .NET Framework 4.6.2+, .NET Core 2.0+ et .NET 5-10, ce qui en fait une bibliothèque polyvalente pour tout projet Visual Studio.

Avant d'écrire le moindre code, vous avez besoin d'une clé de licence d'essai gratuite . Configurez-le dès le début du démarrage de votre application afin que tous les appels suivants soient authentifiés :

using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
$vbLabelText   $csharpLabel

Une fois la clé de licence en place, votre application est prête à générer, lire et personnaliser des codes QR sans filigrane sur les images de sortie.

Comment générer votre premier code QR ?

La création de votre premier code QR nécessite un minimum de code. La classe QrWriter gère la génération de codes QR avec des valeurs par défaut judicieuses qui conviennent à la plupart des cas d'utilisation :

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");
$vbLabelText   $csharpLabel

Sortie du code QR

Générateur de codes QR NuGet : Générez des codes QR en C# en quelques lignes de code : Image 1 - Exemple de code QR simple.

La méthode QrWriter.Write() accepte des données de type chaîne et renvoie un objet QrCode contenant le symbole QR. La méthode Save() convertit ceci en un AnyBitmap, qui prend en charge l'encodage dans différents formats d'image ou l'exportation de données vectorielles pour un chemin XAML. Cette approche fonctionne sur Windows, macOS et Linux sans dépendances spécifiques à la plateforme -- contrairement aux bibliothèques reposant sur System.Drawing qui sont réservées à Windows à partir de .NET 6.

Le modèle en trois lignes ci-dessus correspond au scénario le plus courant : encoder une chaîne de caractères, obtenir une image bitmap, puis écrire un fichier. En production, vous transmettrez probablement des URL, des identifiants de produit ou des données JSON plutôt que du texte brut.

Comment choisir le bon niveau de correction d'erreur ?

Les codes QR prennent en charge quatre niveaux de correction d'erreur définis dans la norme ISO/IEC 18004 relative aux codes QR , qui déterminent le niveau de dommages qu'un code peut subir tout en restant scannable. IronQR prend en charge les quatre niveaux via la classe QrOptions :

Niveaux de correction d'erreurs de code QR pris en charge par IronQR
NiveauCapacité de récupérationIdéal pour
L (Faible)~7%Environnements propres, densité de données maximale
M (Moyen)~15%Utilisation générale (par défaut)
Q (Quartile)~25%applications industrielles
H (Élevé)~30%Logos, signalétique extérieure, occlusion partielle
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionNiveau.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionNiveau.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
$vbLabelText   $csharpLabel

Sortie

Générateur de codes QR NuGet : Générez des codes QR en C# en quelques lignes seulement : Image 2 - QR avec un niveau de correction élevé.

Des niveaux de correction d'erreur plus élevés créent des symboles QR plus denses avec davantage de modules bruts, ce qui permet au code de rester lisible même lorsqu'il est partiellement obscurci ou endommagé. Pour les codes imprimés sur les emballages ou intégrés aux logos, le niveau H est la solution idéale. Pour un affichage exclusivement numérique où les dommages ne sont pas un problème, le niveau M offre un bon compromis entre capacité de données et fiabilité.

Choisir le mauvais niveau est une cause fréquente d'échecs d'analyse en production. Si vos codes QR apparaissent sur des supports physiques ou à des distances variables des caméras, utilisez le niveau Q ou H et vérifiez le résultat avec plusieurs applications de numérisation avant le déploiement.

Comment personnaliser l'apparence d'un code QR ?

IronQR offre de nombreuses options de style via QrStyleOptions, permettant des couleurs personnalisées, des dimensions, des marges et l'intégration de logos. Les codes QR de marque sont plus performants dans un contexte marketing car ils associent visuellement le code à une identité connue :

using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
$vbLabelText   $csharpLabel

Sortie QR stylisée

Générateur de codes QR NuGet : Générez des codes QR en C# avec seulement quelques lignes de code : Image 3 - Code QR stylisé

La propriété Dimensions définit à la fois la largeur et la hauteur en pixels. La propriété Margins contrôle la zone silencieuse -- la bordure blanche entourant le symbole QR que les scanners utilisent pour localiser la limite du code. Réduire les marges en dessous du minimum recommandé de 4 modules peut entraîner des échecs de numérisation sur les appareils plus anciens.

L'ajout de logos aux codes QR améliore la reconnaissance de la marque. Le système de stylisation positionne automatiquement les logos tout en préservant leur lisibilité, ce qui représente un avantage considérable par rapport aux alternatives open source qui nécessitent des calculs de placement manuels.

Comment enregistrer les codes QR dans différents formats de sortie ?

IronQR prend en charge plusieurs formats de sortie, notamment PNG, JPEG, GIF, TIFF, BMP et SVG. La méthode SaveAs détecte automatiquement le format à partir de l'extension du fichier :

using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
$vbLabelText   $csharpLabel

Multiples formats de sortie du code QR

Générateur de codes QR NuGet : Générez des codes QR en C# en quelques lignes de code : Image 4 - Codes QR enregistrés dans différents formats de fichiers.

La méthode ExportBytes() est particulièrement utile dans les applications Web où vous devez renvoyer une image de code QR via HTTP sans écrire sur le disque. Vous pouvez écrire directement le tableau d'octets dans un flux de réponse ou le stocker dans une colonne de base de données pour une récupération à la demande.

Pour intégrer des codes QR dans des documents PDF, IronQR fournit la méthode StampToExistingPdfPage, permettant le placement direct de codes QR sur des documents existants. Cela fonctionne nativement sans bibliothèques PDF supplémentaires, ce qui est important dans les environnements de microservices où l'on souhaite minimiser le nombre de dépendances.

Comment comparer le package NuGet IronQR avec QrCoder ?

La bibliothèque QrCoder est une option open source populaire pour la génération de codes QR en .NET. Les développeurs qui ont utilisé QrCoder connaissent bien son API en plusieurs étapes impliquant QRCodeGenerator, QRCodeData et une classe de rendu séparée telle que PngByteQRCode. IronQR simplifie cela en un seul appel QrWriter.Write().

Comparaison des fonctionnalités IronQR et de QrCoder pour les développeurs .NET
CaractéristiqueIronQRQrCoder
Rendu multiplateformePrise en charge complète de .NET 5 à 10Fonctionne uniquement sous Windows pour le rendu bitmap
Lecture optimisée par l'apprentissage automatiqueDétection précise à 99,9 %Génération uniquement, pas de lecture
Intégration PDFSupport d'estampillage natifNécessite des bibliothèques supplémentaires
Soutien commercialassistance technique 24/5Communauté uniquement
Intégration du logoIntégré, à positionnement automatiqueSuperposition manuelle requise

QrCoder fonctionne bien pour la génération basique sous Windows. Le modèle d'apprentissage automatique d'IronQR offre une lecture supérieure des codes QR quel que soit l'angle, ce qui est essentiel pour les applications traitant des images soumises par l'utilisateur et dont la qualité d'entrée ne peut être contrôlée. L'API à méthode unique réduit également le nombre de lignes de code nécessaires pour déployer une fonctionnalité opérationnelle.

Pour les équipes migrant depuis QrCoder, consultez le guide de migration de QrCoder vers IronQR pour un mappage API côte à côte.

Comment encoder des données binaires dans un code QR ?

Au-delà du texte, IronQR prend en charge l'encodage de tableaux d'octets pour les charges utiles de codes QR binaires. Ceci est utile pour les jetons chiffrés, les objets sérialisés ou les identifiants binaires bruts qui ne peuvent pas être représentés sous forme de chaînes UTF-8 :

using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
$vbLabelText   $csharpLabel

Sortie

Générateur de codes QR NuGet : Générez des codes QR en C# en quelques lignes de code : Image 5 - Code QR encodé en binaire

L'encodage binaire vous permet d'inclure des charges utiles chiffrées, des objets sérialisés ou tout contenu binaire dans des symboles QR. Le scanner à la réception doit savoir interpréter la charge utile binaire ; c'est courant dans les systèmes de contrôle d'accès où le code QR contient un jeton signé plutôt qu'une URL lisible par l'homme.

N'oubliez pas que les données binaires produisent des symboles QR plus denses que les données textuelles équivalentes. Si la taille de la charge utile est un problème pour la fiabilité de la numérisation à distance, appliquez une correction d'erreur de niveau H et effectuez des tests avec la plus petite caméra que vous pensez que les utilisateurs auront.

Comment lire les codes QR en C# ?

IronQR gère à la fois l'écriture et la lecture. La classe QrReader accepte les fichiers image, les bitmaps et les images de caméra, ce qui la rend adaptée aussi bien au traitement par lots qu'aux scénarios de numérisation en temps réel :

using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}
$vbLabelText   $csharpLabel

Le moteur de lecture basé sur l'apprentissage automatique traite les images quelle que soit leur orientation et gère les dommages partiels jusqu'au seuil de correction d'erreur. Pour les scénarios de lecture en production, consultez le tutoriel sur la lecture des codes QR pour obtenir des conseils sur la gestion des entrées de faible qualité, des images à codes multiples et la configuration du mode de numérisation.

Comment utiliser IronQR dans une application ASP.NET Core ?

Les applications web ont fréquemment besoin de générer des codes QR à la demande — pour les liens vers les comptes utilisateurs, les codes de connexion à usage unique ou les demandes de paiement. L'exemple suivant montre comment diffuser une image de code QR directement depuis un point de terminaison d'API minimale ASP.NET Core :

using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();
using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();
$vbLabelText   $csharpLabel

Ce modèle fonctionne aussi bien avec les API minimales ASP.NET Core qu'avec les contrôleurs MVC standard. L'appel ExportBytes() évite l'écriture de fichiers temporaires sur le disque, ce qui est important dans les déploiements conteneurisés où le système de fichiers peut être en lecture seule ou éphémère.

Pour une présentation complète de l'intégration ASP.NET Core , consultez le tutoriel sur le générateur de code QR ASP.NET Core . Un guide spécifique à Blazor est également disponible dans le tutoriel du générateur de code QR Blazor .

Comment ajouter une marge et redimensionner une image de code QR ?

La maîtrise des dimensions et des zones de silence est essentielle pour obtenir une impression de qualité. IronQR expose les deux via QrStyleOptions, et des guides pratiques dédiés couvrent chacun en détail :

using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
$vbLabelText   $csharpLabel

Pour obtenir des instructions complètes sur les exigences de dimensionnement et de marge sur différents supports de sortie, consultez les articles pratiques sur le redimensionnement des images de codes QR et l'ajout de marges aux codes QR . Le guide de création d'images de code QR couvre l'intégralité du processus de création d'images, de l'activation de la licence à la sortie du fichier.

Pour chaque cas d'utilisation spécifique des codes QR ( génération de codes QR pour cartes de visite , création d'un générateur de codes QR dynamiques et lecture de codes QR à partir d'images ), des articles dédiés couvrent chaque scénario avec des exemples de code complets.

Quelles sont vos prochaines étapes ?

IronQR transforme la génération de codes QR, un processus en plusieurs étapes, en une intégration NuGet simple. Vous installez le package, appelez QrWriter.Write(), et enregistrez le résultat — trois opérations qui couvrent la majorité des scénarios du monde réel. Les niveaux de correction d'erreurs, le style personnalisé, l'horodatage PDF et la lecture assistée par l'apprentissage automatique sont tous disponibles via la même bibliothèque.

La documentation IronQR fournit la référence API complète, y compris des sujets avancés tels que la lecture des codes QR avec les modes de numérisation , le traitement par lots et les notes de déploiement spécifiques à la plateforme. La section tutoriels IronQR comprend des guides étape par étape pour les applications .NET MAUI, VB .NET et console.

Démarrez un essai gratuit pour explorer l'ensemble des fonctionnalités sans restrictions, ou achetez une licence pour un déploiement en production avec un support technique 24h/24 et 5j/7.

Questions Fréquemment Posées

Comment installer le package NuGet IronQR ?

Exécutez la dotnet add package IronQR dans un terminal, ou ouvrez la console du Gestionnaire de packages NuGet dans Visual Studio et exécutez Install-Package IronQR . Ce package est compatible avec .NET Framework 4.6.2 et versions ultérieures, .NET Core 2.0 et versions ultérieures, ainsi qu'avec .NET 5 à 10.

Comment générer un code QR en C# avec IronQR?

Appelez QrWriter.Write("your-data") pour créer un objet QrCode , puis appelez .Save() pour obtenir un AnyBitmap , et enfin appelez .SaveAs("output.png") pour écrire le fichier.

Quels sont les formats de sortie pris en charge par IronQR pour les codes QR ?

IronQR prend en charge les formats PNG, JPEG, GIF, TIFF, BMP et SVG. La méthode SaveAs détecte automatiquement le format à partir de l'extension du fichier. Utilisez ExportBytes() pour obtenir un tableau d'octets destiné aux réponses HTTP ou au stockage en base de données.

Comment personnaliser la couleur et la taille d'un code QR avec IronQR?

Créez un objet QrStyleOptions et définissez Dimensions (pixels), Margins (pixels de zone silencieuse), Color et BackgroundColor . Transmettez-le à qr.Save(styleOptions) .

Quels niveaux de correction d'erreurs IronQR prend-il en charge ?

IronQR prend en charge les quatre niveaux de correction d'erreurs ISO/IEC 18004 via QrErrorCorrectionLevel : L (environ 7 % de récupération), M (environ 15 %, par défaut), Q (environ 25 %) et H (environ 30 %). Transmettez le niveau dans un objet QrOptions à QrWriter.Write() .

Comment IronQR se compare-t-il à QRCoder for .NET?

IronQR offre un rendu multiplateforme sur .NET 5 à 10 (le rendu bitmap de QRCoder est réservé à Windows), une lecture intégrée basée sur l'apprentissage automatique (QRCoder ne fait que générer des QRCoder), l'impression native de PDF et une API à méthode unique. QRCoder est une solution libre et gratuite pour la génération simple de QRCoder sous Windows.

Peut-on utiliser IronQR pour lire les codes QR à partir d'images ?

Oui. Utilisez QrReader.Read(AnyBitmap.FromFile("path")) pour scanner une image. Le moteur basé sur l'apprentissage automatique gère toute orientation et les dommages partiels. Parcourez readResult.QrCodes pour accéder à chaque result.Value décodé.Value.

Comment générer des codes QR dans une application ASP.NET Core ?

Appelez QrWriter.Write(data) dans votre contrôleur ou gestionnaire d'API minimal, puis appelez image.ExportBytes() et renvoyez le tableau d'octets sous forme de réponse Results.File(pngBytes, "image/png") . Aucun fichier temporaire n'est nécessaire.

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