Générateur de QR codes en C# (.NET) : l'outil puissant QRCoder
\nLes QR codes sont devenus une partie intégrante du web moderne et des applications mobiles. Ils sont utilisés pour accéder rapidement à des liens, transmettre des coordonnées, s'authentifier, payer et bien plus encore. Si vous développez une application sur la plateforme .NET (C#), l'une des meilleures solutions pour générer des QR codes est la bibliothèque QRCoder. Il s'agit d'une bibliothèque légère, haute performance et entièrement gérée, open source, qui ne nécessite aucune dépendance externe (comme ImageMagick ou ZXing).
\n\nQu'est-ce que QRCoder ?
\nQRCoder est une implémentation pure en C# de la norme des QR codes (ISO/IEC 18004). Elle permet de créer des QR codes de différentes versions (de 1 à 40), de définir le niveau de correction d'erreurs (L, M, Q, H), d'intégrer des logos et d'exporter le résultat aux formats PNG, BMP, JPG, GIF, ainsi qu'en SVG ou XAML (via des modules supplémentaires). La bibliothèque fonctionne aussi bien avec .NET Framework (à partir de la version 4.6) qu'avec .NET Core / .NET 5/6/7/8, ce qui en fait un choix universel pour les applications web (ASP.NET), desktop (WPF, WinForms) et les projets console.
\n\nInstallation et configuration
\nL'installation de QRCoder se fait via le gestionnaire de paquets NuGet. Exécutez l'une des commandes suivantes :
\n// Via la console du gestionnaire de paquets\nInstall-Package QRCoder\n\n// Via .NET CLI\ndotnet add package QRCoder\nAprès l'installation de la bibliothèque, vous pouvez immédiatement commencer à générer des QR codes. Aucune configuration supplémentaire n'est requise.
\n\nExemple de base : génération d'un QR code avec du texte
\nLa méthode la plus simple consiste à créer un QR code contenant une chaîne de caractères arbitraire (URL, texte, numéro de téléphone). L'exemple ci-dessous génère un QR code et l'enregistre dans un fichier :
\nusing QRCoder;\nusing System.Drawing;\nusing System.Drawing.Imaging;\n\nclass Program\n{\n static void Main()\n {\n // 1. Créer un générateur\n QRCodeGenerator qrGenerator = new QRCodeGenerator();\n\n // 2. Créer les données du QR code (texte, niveau de correction)\n QRCodeData qrCodeData = qrGenerator.CreateQrCode(\n "https://pythonlib.ru",\n QRCodeGenerator.ECCLevel.Q // Niveau Q — 25% de récupération\n );\n\n // 3. Créer la représentation graphique\n QRCode qrCode = new QRCode(qrCodeData);\n\n // 4. Rendre en Bitmap (taille du module 20 pixels)\n Bitmap qrCodeImage = qrCode.GetGraphic(20);\n\n // 5. Enregistrer dans un fichier\n qrCodeImage.Save("qrcode.png", ImageFormat.Png);\n\n Console.WriteLine("QR code créé : qrcode.png");\n }\n}\nEn résultat, vous obtiendrez un fichier qrcode.png avec un QR code noir et blanc. Le niveau de correction Q permet de restaurer jusqu'à 25% des données endommagées — optimal pour la plupart des tâches.
QR code avec logo (marque)
\nQRCoder prend en charge l'intégration d'une image au centre du QR code. C'est utile pour les autocollants de marque ou les cartes de visite. Important : le logo ne doit pas couvrir plus de 30% de la surface du code, sinon la lecture deviendrait impossible.
\nusing QRCoder;\nusing System.Drawing;\n\npublic Bitmap GenerateQrWithLogo(string text, string logoPath)\n{\n QRCodeGenerator qrGenerator = new QRCodeGenerator();\n QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);\n QRCode qrCode = new QRCode(qrCodeData);\n\n // Charger le logo\n Image logo = Image.FromFile(logoPath);\n\n // Générer avec le logo (taille du module 20, couleur de fond blanc, logo centré)\n Bitmap result = qrCode.GetGraphic(20, Color.Black, Color.White, logo);\n return result;\n}\n\nPersonnalisation de l'apparence : couleur et taille
\nVous pouvez facilement modifier les couleurs du QR code pour l'adapter au design de votre application. La méthode GetGraphic accepte les paramètres :
- \n
- pixelsPerModule — taille d'un