QR-Code-Generator in C# (.NET) mit der Bibliothek QRCoder
QR-Codes sind zu einem unverzichtbaren Bestandteil des modernen Webs und mobiler Anwendungen geworden. Sie werden zur schnellen Übertragung von Links, Kontaktdaten, Wi-Fi-Passwörtern, Zahlungsinformationen und vielem mehr verwendet. Im C# (.NET)-Ökosystem ist QRCoder eine der beliebtesten und am einfachsten zu verwendenden Bibliotheken zur Generierung von QR-Codes. In diesem Artikel werden wir im Detail besprechen, wie man die Bibliothek installiert, einen einfachen und komplexen QR-Code erstellt und ihn in verschiedenen Formaten (PNG, SVG) speichert.
Was ist QRCoder?
QRCoder ist eine leichte, leistungsstarke Open-Source-Bibliothek für .NET (unterstützt .NET Framework 4.6+ und .NET Core/.NET 5+). Sie benötigt keine externen Abhängigkeiten außer der Standardbibliothek System.Drawing für Rasterbilder. Die wichtigsten Funktionen:
- Generierung von QR-Codes aus Text, URL, Kontakten (vCard), Wi-Fi-Einstellungen, SMS, E-Mail und anderen Formaten.
- Einstellung der Fehlerkorrekturstufe (L, M, Q, H).
- Auswahl der QR-Code-Version (Matrixgröße).
- Export in PNG, BMP, SVG, XAML, EPS, PostScript und HTML.
- Unterstützung für Farben, Hintergrund, Transparenz und benutzerdefinierte Logos.
Installation im C#-Projekt
Die Installation der Bibliothek QRCoder erfolgt über den NuGet Package Manager. Öffnen Sie die Paketmanager-Konsole oder verwenden Sie die .NET CLI:
dotnet add package QRCoderOder über die Paketmanager-Konsole:
Install-Package QRCoderBasisbeispiel — Generierung eines einfachen QR-Codes
Erstellen wir eine Konsolenanwendung, die einen QR-Code für die Zeichenfolge "https://pythonlib.ru" generiert und als PNG-Datei speichert.
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);
// Bildgenerierung (Pixel)Bitmap qrCodeImage = qrCode.GetGraphic(20);
// Speichern in DateiqrCodeImage.Save("qrcode.png", System.Drawing.Imaging.ImageFormat.Png);
Console.WriteLine("QR-Code erstellt: qrcode.png");In diesem Beispiel:
ECCLevel.Q— Fehlerkorrekturstufe (25 % der Daten können beschädigt sein).GetGraphic(20)— Größe eines Moduls (Quadrats) in Pixeln.- Das Ergebnis ist ein schwarz-weißes PNG.
Anpassung des Aussehens — Farbe, Logo, SVG
QRCoder ermöglicht eine flexible Anpassung des QR-Code-Erscheinungsbilds. Betrachten wir ein Beispiel mit farbigem Hintergrund, dunklen Modulen und integriertem Logo.
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);
// FarbeinstellungColor darkColor = Color.FromArgb(52, 73, 94); // dunkelblauColor lightColor = Color.FromArgb(236, 240, 241); // hellgrau
// Generierung mit Logo (Logo muss in der Mitte sein)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("Farbiger QR-Code mit Logo gespeichert.");Hinweis: Für eine korrekte Funktion mit Logo wird die Verwendung der Fehlerkorrekturstufe ECCLevel.Q oder ECCLevel.H empfohlen, da das Logo einen Teil der Daten überdeckt.
Export in SVG (Vektorformat)
Wenn Sie einen skalierbaren QR-Code benötigen (z. B. für den Druck), verwenden Sie den SVG-Renderer. Installieren Sie dazu das zusätzliche Paket QRCoder.Svg: