Générateur de QR codes en C# (.NET) avec QRCoder

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Générateur de QR codes en C# (.NET) avec la bibliothèque QRCoder



Les QR codes sont devenus une partie intégrante du web moderne et des applications mobiles. Ils sont utilisés pour transmettre rapidement des liens, des coordonnées, des mots de passe Wi-Fi, des informations de paiement et bien plus encore. Dans l'écosystème C# (.NET), l'une des bibliothèques les plus populaires et les plus simples à utiliser pour générer des QR codes est QRCoder. Dans cet article, nous allons détailler comment installer la bibliothèque, créer un QR code simple et complexe, et le sauvegarder dans différents formats (PNG, SVG).



Qu'est-ce que QRCoder ?



QRCoder est une bibliothèque légère et haute performance, open source pour .NET (prend en charge .NET Framework 4.6+ et .NET Core/.NET 5+). Elle ne nécessite aucune dépendance externe, à l'exception de la bibliothèque standard System.Drawing pour les images bitmap. Principales fonctionnalités :

  • Génération de QR codes à partir de texte, d'URL, de contacts (vCard), de paramètres Wi-Fi, de SMS, d'e-mails et d'autres formats.
  • Configuration du niveau de correction d'erreurs (L, M, Q, H).
  • Choix de la version du QR code (taille de la matrice).
  • Export en PNG, BMP, SVG, XAML, EPS, PostScript et HTML.
  • Prise en charge des couleurs, de l'arrière-plan, de la transparence et des logos personnalisés.


Installation dans un projet C#



L'installation de la bibliothèque QRCoder se fait via le NuGet Package Manager. Ouvrez la console du gestionnaire de packages ou utilisez .NET CLI :



dotnet add package QRCoder


Ou via la Package Manager Console :



Install-Package QRCoder


Exemple de base — génération d'un QR code simple



Créons une application console qui génère un QR code pour la chaîne "https://pythonlib.ru" et l'enregistre dans un fichier PNG.



using QRCoder;using System.Drawing;

string url = "https://pythonlib.ru";QRCodeGenerator qrGenerator = new QRCodeGenerator();QRCodeData qrCodeData = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);QRCode qrCode = new QRCode(qrCodeData);

// Génération de l'image (pixels)Bitmap qrCodeImage = qrCode.GetGraphic(20);

// Sauvegarde dans un fichierqrCodeImage.Save("qrcode.png", System.Drawing.Imaging.ImageFormat.Png);

Console.WriteLine("QR code créé : qrcode.png");


Dans cet exemple :

  • ECCLevel.Q — niveau de correction d'erreurs (25% des données peuvent être endommagées).
  • GetGraphic(20) — taille d'un module (petit carré) en pixels.
  • Le résultat est un PNG noir et blanc.


Personnalisation de l'apparence — couleur, logo, SVG



QRCoder permet de personnaliser facilement l'apparence du QR code. Voyons un exemple avec un fond coloré, des modules foncés et un logo intégré.



using QRCoder;using System.Drawing;

string data = "https://pythonlib.ru";QRCodeGenerator qrGenerator = new QRCodeGenerator();QRCodeData qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);QRCode qrCode = new QRCode(qrCodeData);

// Configuration des couleursColor darkColor = Color.FromArgb(52, 73, 94); // bleu foncéColor lightColor = Color.FromArgb(236, 240, 241); // gris clair

// Génération avec un logo (le logo doit être au centre)Bitmap logo = new Bitmap("logo.png");Bitmap qrCodeImage = qrCode.GetGraphic(20, darkColor, lightColor, logo);

qrCodeImage.Save("qrcode_color.png", System.Drawing.Imaging.ImageFormat.Png);Console.WriteLine("QR code coloré avec logo sauvegardé.");


Remarque : pour un fonctionnement correct avec un logo, il est recommandé d'utiliser le niveau de correction d'erreurs ECCLevel.Q ou ECCLevel.H, car le logo recouvre une partie des données.



Export en SVG (format vectoriel)



Si vous avez besoin d'un QR code redimensionnable (par exemple pour l'impression), utilisez le rendu SVG. Pour cela, installez le package supplémentaire QRCoder.Svg :



                    

Recommendations