C# QR Code Generator Application — QR Code erstellen mit .NET
Willkommen zu unserem Leitfaden zur Erstellung von QR-Codes mit C#! QR-Codes und .NET-Barcodedateien sind beliebte Methoden geworden, um Informationen schnell und effizient zu teilen. Egal, ob Sie eine App entwickeln, eine Website verwalten oder einfach nur nach einer praktischen Möglichkeit suchen, Links zu teilen, diese Codes können unglaublich nützlich sein. In diesem Leitfaden zeigen wir Ihnen, wie Sie mit IronQR effizient QR-Codes generieren können, sodass Sie QR-Codes erstellen können, die auf Ihre Bedürfnisse zugeschnitten sind. Diese Bibliothek macht es jedem, der mit C# arbeitet, leicht, QR-Codes zu erstellen, ohne sich mit komplexer Logik zu befassen. Wir führen Sie Schritt für Schritt durch den Prozess, damit Sie alles haben, was Sie benötigen, um loszulegen. Egal, ob Sie die Funktionalität zum QR-Code-Generator zu Ihrer App hinzufügen möchten oder einfach neugierig sind, wie es gemacht wird, hier sind Sie am richtigen Ort. Lassen Sie uns beginnen.
Wie man einen QR-Code-Generator in C# erstellt
- Erstelle eine Windows Forms-Anwendung in Visual Studio
- Installieren Sie die QR-Bibliothek mithilfe von NuGet.
- Designe die Frontend-Elemente des Formulars
- Logik der QR-Generierung schreiben
- Die Anwendung ausführen und mit der Erstellung von QR-Codes beginnen
Install QR Code Generator Library in C
Nutzen Sie IronQR heute kostenlos in Ihrem Projekt.
Bevor wir beginnen, müssen wir das IronQR NuGet-Paket installieren.
Install-Package IronQR
IronQR: C# QR-Bibliothek
IronQR ist eine C# QR-Code-Bibliothek zur Integration von QR-Code-Funktionalität in .NET-Anwendungen. IronQR unterstützt eine breite Palette von .NET-Versionen und Projekttypen, einschließlich C#, VB.NET, F#, .NET Core, .NET Standard, .NET Framework und mehr, und gewährleistet Kompatibilität mit verschiedenen Entwicklungsumgebungen wie Windows, Linux, macOS, iOS und Android.
IronQR zeichnet sich mit seinen erweiterten Funktionen aus, darunter die Möglichkeit, QR-Codes zu lesen und QR-Codes zu generieren, Unterstützung für mehrere Bildformate und Anpassungsoptionen wie Größenänderung, Gestaltung und Hinzufügen von Logos zu QR-Codes.
Einige Hauptmerkmale von IronQR
IronQR erweitert seine Funktionalität über die grundlegende QR-Code-Generierung hinaus und bietet mehrere Funktionen, die darauf ausgelegt sind, eine breite Palette von QR-Code-bezogenen Aufgaben zu bewältigen. Lassen Sie uns diese Funktionen durchgehen und ihre Beispielcodes prüfen, die Sie in jede Art von .NET-Anwendungsvorlage wie Konsolenanwendung integrieren können.
QR-Codes lesen
IronQR zeichnet sich durch das Dekodieren von QR-Codes aus und bietet den Benutzern eine einfache Möglichkeit, auf die in QR-Codes eingebetteten Informationen zuzugreifen. Sie können schnell und genau Daten aus QR-Codes extrahieren, von einfachen URLs bis hin zu komplexen eingebetteten Informationen.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-1.cs
using IronQr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
IronQr.License.LicenseKey = "License-Key";
// Load the image file that contains the QR Code
var inputImage = AnyBitmap.FromFile("QRCode.png");
// Prepare the image for QR code detection
QrImageInput qrInput = new QrImageInput(inputImage);
// Initialize the QR Code reader
QrReader qrReader = new QrReader();
// Execute QR Code reading on the provided image
IEnumerable<QrResult> qrResults = qrReader.Read(qrInput);
// Assuming you have the QR results in qrResults as before
foreach (var result in qrResults)
{
Console.WriteLine(result.Value); // Print the QR code content to the console
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
IronQr.License.LicenseKey = "License-Key"
' Load the image file that contains the QR Code
Dim inputImage = AnyBitmap.FromFile("QRCode.png")
' Prepare the image for QR code detection
Dim qrInput As New QrImageInput(inputImage)
' Initialize the QR Code reader
Dim qrReader As New QrReader()
' Execute QR Code reading on the provided image
Dim qrResults As IEnumerable(Of QrResult) = qrReader.Read(qrInput)
' Assuming you have the QR results in qrResults as before
For Each result In qrResults
Console.WriteLine(result.Value) ' Print the QR code content to the console
Next result
Der Prozess beginnt mit dem Import der notwendigen Namensräume: IronQr und IronSoftware.Drawing, mit einer spezifischen Erwähnung von Color aus dem IronSoftware.Drawing-Namespace zur Bildbearbeitung.
Bevor Sie mit dem Lesen des QR-Codes beginnen, ist es unerlässlich, die Software mit Ihrem Lizenzschlüssel zu aktivieren, indem Sie ihn IronQr.License.LicenseKey zuweisen. Anschließend wird das QR-Code-Bild aus einer Datei mit AnyBitmap.FromFile("QRCode.png") geladen.
Mit dem geladenen Bild besteht der nächste Schritt darin, es für die QR-Code-Erkennung vorzubereiten. Diese Vorbereitung erfolgt durch die Erstellung eines QrImageInput-Objekts, das als Container für das Image dient.
Das Herzstück dieser Funktion ist die Klasse QrReader, die instanziiert und zum Lesen des QR-Codes verwendet wird. Der Leser analysiert das vorbereitete Bild und sucht nach darin enthaltenen QR-Codes. Das Ergebnis dieser Operation ist eine Sammlung von QrResult-Objekten, die jeweils einen erkannten QR-Code im Bild darstellen.
Um auf die in den QR-Codes kodierten Daten zuzugreifen und diese zu nutzen, durchläuft der Code die Ergebnismenge mithilfe einer Schleife. Jedes Objekt enthält Eigenschaften wie den Wert des QR-Codes, auf die zugegriffen und die angezeigt werden können.
Benutzerdefinierte QR-Lesemodus-Optionen
IronQR bietet verschiedene Modi zum Lesen von QR-Codes, was es vielseitig für unterschiedliche Bedürfnisse macht.
- Gemischter Scan-Modus: Balanciert Geschwindigkeit und Genauigkeit, nützlich für QR-Codes, die nicht klar oder teilweise verborgen sind.
- Maschinelles Lernen (ML) Scan-Modus: Nutzt fortschrittliche Technologie, um beschädigte oder schwer lesbare QR-Codes zu lesen, ideal für schwer zu erkennende Szenarien.
- Basis-Scan-Modus: Die einfachste und schnellste Methode, für klare und einfache QR-Codes.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-2.cs
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.Collections.Generic;
IronQr.License.LicenseKey = "License-Key";
// Load the image file that contains the QR Code
var inputImage = AnyBitmap.FromFile("QRCode.png");
QrImageInput mixedScanInput = new QrImageInput(inputImage, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> mixedScanResults = new QrReader().Read(mixedScanInput);
QrImageInput mlScanInput = new QrImageInput(inputImage, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> mlScanResults = new QrReader().Read(mlScanInput);
QrImageInput basicScanInput = new QrImageInput(inputImage, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> basicScanResults = new QrReader().Read(basicScanInput);
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.Collections.Generic
IronQr.License.LicenseKey = "License-Key"
' Load the image file that contains the QR Code
Dim inputImage = AnyBitmap.FromFile("QRCode.png")
Dim mixedScanInput As New QrImageInput(inputImage, QrScanMode.OnlyDetectionModel)
Dim mixedScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(mixedScanInput)
Dim mlScanInput As New QrImageInput(inputImage, QrScanMode.OnlyDetectionModel)
Dim mlScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(mlScanInput)
Dim basicScanInput As New QrImageInput(inputImage, QrScanMode.OnlyBasicScan)
Dim basicScanResults As IEnumerable(Of QrResult) = (New QrReader()).Read(basicScanInput)
Erweiterte QR-Codes lesen
Die fortschrittlichen QR-Code-Lesefunktionen von IronQR bieten einen umfassenden Ansatz für das Scannen und Dekodieren von QR-Codes. Dieses Funktionsset geht über einfaches Lesen hinaus und bietet eine tiefere Ebene der Interaktion und Datenextraktion.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-3.cs
using IronQr;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
IronQr.License.LicenseKey = "License-Key";
var imageToScan = AnyBitmap.FromFile("QRCode.png");
QrImageInput qrInput = new QrImageInput(imageToScan);
QrReader qrScanner = new QrReader();
IEnumerable<QrResult> scanResults = qrScanner.Read(qrInput);
foreach (QrResult qrResult in scanResults)
{
Console.WriteLine(qrResult.Value);
Console.WriteLine(qrResult.Url);
foreach (IronSoftware.Drawing.PointF coordinate in qrResult.Points)
{
Console.WriteLine($"{coordinate.X}, {coordinate.Y}");
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
IronQr.License.LicenseKey = "License-Key"
Dim imageToScan = AnyBitmap.FromFile("QRCode.png")
Dim qrInput As New QrImageInput(imageToScan)
Dim qrScanner As New QrReader()
Dim scanResults As IEnumerable(Of QrResult) = qrScanner.Read(qrInput)
For Each qrResult As QrResult In scanResults
Console.WriteLine(qrResult.Value)
Console.WriteLine(qrResult.Url)
For Each coordinate As IronSoftware.Drawing.PointF In qrResult.Points
Console.WriteLine($"{coordinate.X}, {coordinate.Y}")
Next coordinate
Next qrResult
Um einen QR-Code-Generator mit der IronQR-Bibliothek in einer C#-Anwendung zu erstellen, folgen Sie diesen Schritten sorgfältig. Dieser Leitfaden führt Sie durch das Einrichten einer Windows-Formularanwendung, das Installieren der IronQR-Bibliothek, das Schreiben des Codes zum Generieren eines QR-Codes und das Verstehen der Ausgabe.
Schritt 1: Erstellen Sie eine Windows-Anwendung in Visual Studio
- Starten Sie Visual Studio auf Ihrem Computer.
- Klicken Sie auf die Schaltfläche "Neues Projekt erstellen".
-
Wählen Sie Windows Forms-App als Projekttyp. Wählen Sie C# als Sprache.

-
Geben Sie einen Namen für Ihr Projekt ein und wählen Sie den Speicherort. Wählen Sie dann im nächsten Bildschirm .NET Framework aus. Klicken Sie dann auf Erstellen.

Schritt 2: Installieren Sie die IronQR-Bibliothek
Nun ist es an der Zeit, die IronQR-Bibliothek im Projekt zu installieren. Sie können die IronQR-Bibliothek über verschiedene Methoden installieren.
Installation über den NuGet-Paket-Manager
- Klicken Sie mit der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer und wählen Sie NuGet-Pakete verwalten.
- Geben Sie
IronQRin das Suchfeld ein und drücken Sie die Eingabetaste .
-
Finden Sie IronQR in der Liste und klicken Sie auf Installieren daneben.

Installation über die NuGet-Paket-Manager-Konsole
Install-Package IronQR ein und drücken Sie die Eingabetaste.
Schritt 3: Frontend-Design
3.1 Titelüberschrift
Beim Starten der QR-Code-Generator-Anwendung wird den Benutzern sofort eine auffällige Überschrift "QR Generator IronQR" präsentiert, die in einer fetten und markanten Schriftart gesetzt ist.
3.2 Eingabebereich
Texteingabe für QR-Code
Benutzer können die Daten eingeben, die sie in ihren QR-Code kodieren möchten.
Logoauswahl
Der Bereich "Logo auswählen" ermöglicht eine zusätzliche Ebene der Anpassung. Benutzer können ein Logo hochladen, das im QR-Code eingebettet wird.
Farbkonfiguration
Schaltflächen zur Farbauswahl ermöglichen es den Benutzern, die Palette ihres QR-Codes anzupassen.
3.3 Stilparameter
Dimensionseinstellungen
Ermöglicht es Benutzern, die Gesamtgröße des QR-Codes festzulegen.
Randeinstellungen
Ermöglicht es Benutzern, den weißen Raum um den QR-Code herum festzulegen.
3.4 Ausgabespeicher
Bietet eine Echtzeitvorschau des generierten QR-Codes.
3.5 Aktionsschaltflächen
QR erzeugen
Löst den QR-Code-Erstellungsprozess aus.
QR-Code speichern
Öffnet ein Dialogfeld zum Speichern des QR-Codes.
Formular zurücksetzen
Löscht alle vorherigen Eingaben und Auswahlen.
Schritt 4: Backend-Logik schreiben
4.1 Einrichtung und Initialisierung
Beinhaltet die notwendigen Namensräume: IronQr und IronSoftware.Drawing.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-4.cs
using IronQr;
using IronSoftware.Drawing;
using Color = IronSoftware.Drawing.Color;
Imports IronQr
Imports IronSoftware.Drawing
Imports Color = IronSoftware.Drawing.Color
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-5.cs
public QR_Generator()
{
InitializeComponent();
SetLicenseKey();
EnsureDirectoryExists(qrCodesDirectory);
}
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public QR_Generator()
Public Sub New()
InitializeComponent()
SetLicenseKey()
EnsureDirectoryExists(qrCodesDirectory)
End Sub
4.2 Lizenzschlüssel-Konfiguration
Wendet einen gültigen Lizenzschlüssel für die IronQR-Bibliothek an:
private static void SetLicenseKey() {
IronQr.License.LicenseKey = "YOUR_LICENSE_KEY";
}
private static void SetLicenseKey() {
IronQr.License.LicenseKey = "YOUR_LICENSE_KEY";
}
Private Shared Sub SetLicenseKey()
IronQr.License.LicenseKey = "YOUR_LICENSE_KEY"
End Sub
Ersetzen Sie "YOUR_LICENSE_KEY" durch Ihren tatsächlichen Lizenzschlüssel.
4.3 Verzeichniserwaltung
Überprüft oder erstellt notwendige Verzeichnisse.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-7.cs
private static void EnsureDirectoryExists(string path)
{
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
}
Private Shared Sub EnsureDirectoryExists(ByVal path As String)
If Not System.IO.Directory.Exists(path) Then
System.IO.Directory.CreateDirectory(path)
End If
End Sub
Der Pfad zum QR-Code-Verzeichnis wird im Konstruktor der QR_Generator-Klasse als qrCodesDirectory definiert, der den Anwendungsstartpfad mit einem "QR Codes"-Ordnernamen kombiniert:
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-8.cs
string qrCodesDirectory = System.IO.Path.Combine(Application.StartupPath, "QR Codes");
Dim qrCodesDirectory As String = System.IO.Path.Combine(Application.StartupPath, "QR Codes")
4.4 Farbauswahl
Bietet Farbdialogkomponenten und Dienstprogramme.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-9.cs
private string ColorToHex(System.Drawing.Color color)
{
return $"#{color.R:X2}{color.G:X2}{color.B:X2}";
}
Private Function ColorToHex(ByVal color As System.Drawing.Color) As String
Return $"#{color.R:X2}{color.G:X2}{color.B:X2}"
End Function
Die Methode UpdateColor nimmt die ausgewählte Farbe und wandelt sie mithilfe der Hexadezimalzeichenfolge in das Format IronSoftware.Drawing.Color um. Je nach Auswahl wird entweder die Vordergrund- oder die Hintergrundfarbe des QR-Codes aktualisiert. Es aktualisiert auch die Benutzeroberfläche, um die neue Farbauswahl anzuzeigen:
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-10.cs
private void UpdateColor(ref Color targetColor, Control display, bool isBackground)
{
if (select_color.ShowDialog() == DialogResult.OK)
{
var hexColor = ColorToHex(select_color.Color);
targetColor = new Color(hexColor);
display.BackColor = select_color.Color;
}
}
Private Sub UpdateColor(ByRef targetColor As Color, ByVal display As Control, ByVal isBackground As Boolean)
If select_color.ShowDialog() = DialogResult.OK Then
Dim hexColor = ColorToHex(select_color.Color)
targetColor = New Color(hexColor)
display.BackColor = select_color.Color
End If
End Sub
4.5 Hinzufügen eines Logos
Ermöglicht es dem Benutzer, ein Logo auszuwählen.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-11.cs
private void btn_logo_Click(object sender, EventArgs e)
{
if (select_logo.ShowDialog() == DialogResult.OK)
{
try
{
logoBmp = new AnyBitmap(select_logo.FileName);
selected_logo.Image = Image.FromFile(select_logo.FileName);
}
catch (Exception ex)
{
ShowError("An error occurred while loading the logo", ex.Message);
}
}
}
Private Sub btn_logo_Click(ByVal sender As Object, ByVal e As EventArgs)
If select_logo.ShowDialog() = DialogResult.OK Then
Try
logoBmp = New AnyBitmap(select_logo.FileName)
selected_logo.Image = Image.FromFile(select_logo.FileName)
Catch ex As Exception
ShowError("An error occurred while loading the logo", ex.Message)
End Try
End If
End Sub
4.6 Erstellung des QR-Codes
Enthält die Logik zur Generierung von QR-Codes basierend auf Benutzereingaben.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-12.cs
private void btn_generate_Click(object sender, EventArgs e)
{
GenerateQRCode();
}
Private Sub btn_generate_Click(ByVal sender As Object, ByVal e As EventArgs)
GenerateQRCode()
End Sub
Das Objekt QrOptions definiert die Fehlerkorrekturstufe und erhöht so die Widerstandsfähigkeit des QR-Codes gegenüber Beschädigung oder Verdeckung. Die Methode CreateStyleOptions erzeugt ein QrStyleOptions Objekt, das die benutzerdefinierten Einstellungen des Benutzers wie Farben, Abmessungen und das Logo enthält. Hier ist die Methode im Detail:
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-14.cs
private QrStyleOptions CreateStyleOptions()
{
return new QrStyleOptions
{
BackgroundColor = bgColor,
Color = color,
Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"),
Margins = Convert.ToInt32(txt_margin.Value),
Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null
};
}
Private Function CreateStyleOptions() As QrStyleOptions
'INSTANT VB TODO TASK: Throw expressions are not converted by Instant VB:
'ORIGINAL LINE: return new QrStyleOptions { BackgroundColor = bgColor, Color = color, Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"), Margins = Convert.ToInt32(txt_margin.Value), Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null };
Return New QrStyleOptions With {
.BackgroundColor = bgColor,
.Color = color,
.Dimensions = If(txt_dimension.Value > 0, Convert.ToInt32(txt_dimension.Value), throw New ArgumentException("Please select valid dimensions!")),
.Margins = Convert.ToInt32(txt_margin.Value),
.Logo = If(logoBmp IsNot Nothing, New QrLogo With {
.Bitmap = logoBmp,
.Width = 50,
.Height = 50,
.CornerRadius = 5
}, Nothing)
}
End Function
4.7 Speichern des QR-Codes
Kümmert sich um das Speichern des generierten QR-Codes.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-15.cs
private void btn_save_Click(object sender, EventArgs e)
{
SaveQRCode();
}
private void SaveQRCode()
{
if (pictureBox.Image == null)
{
MessageBox.Show("There is no QR code to save.", "Error");
return;
}
saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg";
saveFileDialog.Title = "Save QR Code";
saveFileDialog.FileName = "QRCode";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName));
MessageBox.Show("QR Code has been saved!", "Success");
}
catch (Exception ex)
{
ShowError("An error occurred while saving the QR code", ex.Message);
}
}
}
Private Sub btn_save_Click(ByVal sender As Object, ByVal e As EventArgs)
SaveQRCode()
End Sub
Private Sub SaveQRCode()
If pictureBox.Image Is Nothing Then
MessageBox.Show("There is no QR code to save.", "Error")
Return
End If
saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg"
saveFileDialog.Title = "Save QR Code"
saveFileDialog.FileName = "QRCode"
If saveFileDialog.ShowDialog() = DialogResult.OK Then
Try
pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName))
MessageBox.Show("QR Code has been saved!", "Success")
Catch ex As Exception
ShowError("An error occurred while saving the QR code", ex.Message)
End Try
End If
End Sub
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-16.cs
private System.Drawing.Imaging.ImageFormat DetermineImageFormat(string filePath)
{
return System.IO.Path.GetExtension(filePath).ToLower() == ".jpg" ? System.Drawing.Imaging.ImageFormat.Jpeg : System.Drawing.Imaging.ImageFormat.Png;
}
Private Function DetermineImageFormat(ByVal filePath As String) As System.Drawing.Imaging.ImageFormat
Return If(System.IO.Path.GetExtension(filePath).ToLower() = ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg, System.Drawing.Imaging.ImageFormat.Png)
End Function
4.8 Zurücksetzen der Anwendung
Löscht Benutzereingaben und setzt den Formularstatus zurück.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-17.cs
private void btn_reset_Click(object sender, EventArgs e)
{
ResetFields();
}
private void ResetFields()
{
txt_QR.Text = string.Empty;
txt_dimension.Value = 200;
txt_margin.Value = 0;
bgColor = Color.White;
color = Color.Black;
txt_selected_color.BackColor = System.Drawing.Color.White;
txt_selected_bgcolor.BackColor = System.Drawing.Color.Black;
logoBmp = null;
selected_logo.Image = null;
pictureBox.Image = null;
}
Private Sub btn_reset_Click(ByVal sender As Object, ByVal e As EventArgs)
ResetFields()
End Sub
Private Sub ResetFields()
txt_QR.Text = String.Empty
txt_dimension.Value = 200
txt_margin.Value = 0
bgColor = Color.White
color = Color.Black
txt_selected_color.BackColor = System.Drawing.Color.White
txt_selected_bgcolor.BackColor = System.Drawing.Color.Black
logoBmp = Nothing
selected_logo.Image = Nothing
pictureBox.Image = Nothing
End Sub
4.9 Fehlerbehandlung
Zeigt Fehlermeldungen an Benutzer an.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-18.cs
private static void ShowError(string title, string message)
{
MessageBox.Show($"{title}: {message}", "Error");
}
Private Shared Sub ShowError(ByVal title As String, ByVal message As String)
MessageBox.Show($"{title}: {message}", "Error")
End Sub
4.10 Vollständiges Codebeispiel
Der vollständige Code, der alle oben genannten Funktionen kombiniert, kann in der Beispieldatei gefunden werden, die mit Ihrem Projekt verknüpft ist.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-code-generator-application-19.cs
using IronQr;
using IronSoftware.Drawing;
using Color = IronSoftware.Drawing.Color;
namespace IronQR_QR_Generator_WinForms
{
public partial class QR_Generator : Form
{
string qrCodesDirectory = System.IO.Path.Combine(Application.StartupPath, "QR Codes");
Color bgColor = Color.White;
Color color = Color.Black;
AnyBitmap? logoBmp = null;
public QR_Generator()
{
InitializeComponent();
SetLicenseKey();
EnsureDirectoryExists(qrCodesDirectory);
}
private static void SetLicenseKey()
{
IronQr.License.LicenseKey = "License-Key";
}
private static void EnsureDirectoryExists(string path)
{
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
}
private void btn_color_Click(object sender, EventArgs e)
{
UpdateColor(ref color, txt_selected_color, false);
}
private void btn_background_Click(object sender, EventArgs e)
{
UpdateColor(ref bgColor, txt_selected_bgcolor, true);
}
private string ColorToHex(System.Drawing.Color color)
{
return $"#{color.R:X2}{color.G:X2}{color.B:X2}";
}
private void UpdateColor(ref Color targetColor, Control display, bool isBackground)
{
if (select_color.ShowDialog() == DialogResult.OK)
{
var hexColor = ColorToHex(select_color.Color);
targetColor = new Color(hexColor);
display.BackColor = select_color.Color;
}
}
private void btn_logo_Click(object sender, EventArgs e)
{
if (select_logo.ShowDialog() == DialogResult.OK)
{
try
{
logoBmp = new AnyBitmap(select_logo.FileName);
selected_logo.Image = Image.FromFile(select_logo.FileName);
}
catch (Exception ex)
{
ShowError("An error occurred while loading the logo", ex.Message);
}
}
}
private void btn_generate_Click(object sender, EventArgs e)
{
GenerateQRCode();
}
private void GenerateQRCode()
{
try
{
var options = new QrOptions(QrErrorCorrectionLevel.High);
var myQr = QrWriter.Write(txt_QR.Text, options);
var style = CreateStyleOptions();
var qrImage = myQr.Save(style);
var fileName = $"{DateTime.Now:yyyyMMddHHmmssfff}_QR.png";
var fullPath = System.IO.Path.Combine(qrCodesDirectory, fileName);
qrImage.SaveAs(fullPath);
pictureBox.Image = Image.FromFile(fullPath);
}
catch (Exception ex)
{
ShowError("An error occurred during QR code generation or saving", ex.Message);
}
}
private QrStyleOptions CreateStyleOptions()
{
return new QrStyleOptions
{
BackgroundColor = bgColor,
Color = color,
Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"),
Margins = Convert.ToInt32(txt_margin.Value),
Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null
};
}
private void btn_save_Click(object sender, EventArgs e)
{
SaveQRCode();
}
private void SaveQRCode()
{
if (pictureBox.Image == null)
{
MessageBox.Show("There is no QR code to save.", "Error");
return;
}
saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg";
saveFileDialog.Title = "Save QR Code";
saveFileDialog.FileName = "QRCode";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName));
MessageBox.Show("QR Code has been saved!", "Success");
}
catch (Exception ex)
{
ShowError("An error occurred while saving the QR code", ex.Message);
}
}
}
private System.Drawing.Imaging.ImageFormat DetermineImageFormat(string filePath)
{
return System.IO.Path.GetExtension(filePath).ToLower() == ".jpg" ? System.Drawing.Imaging.ImageFormat.Jpeg : System.Drawing.Imaging.ImageFormat.Png;
}
private void btn_reset_Click(object sender, EventArgs e)
{
ResetFields();
}
private void ResetFields()
{
txt_QR.Text = string.Empty;
txt_dimension.Value = 200;
txt_margin.Value = 0;
bgColor = Color.White;
color = Color.Black;
txt_selected_color.BackColor = bgColor;
txt_selected_bgcolor.BackColor = color;
logoBmp = null;
selected_logo.Image = null;
pictureBox.Image = null;
}
private static void ShowError(string title, string message)
{
MessageBox.Show($"{title}: {message}", "Error");
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Color = IronSoftware.Drawing.Color
Namespace IronQR_QR_Generator_WinForms
Partial Public Class QR_Generator
Inherits Form
Private qrCodesDirectory As String = System.IO.Path.Combine(Application.StartupPath, "QR Codes")
Private bgColor As Color = Color.White
Private color As Color = Color.Black
Private logoBmp? As AnyBitmap = Nothing
Public Sub New()
InitializeComponent()
SetLicenseKey()
EnsureDirectoryExists(qrCodesDirectory)
End Sub
Private Shared Sub SetLicenseKey()
IronQr.License.LicenseKey = "License-Key"
End Sub
Private Shared Sub EnsureDirectoryExists(ByVal path As String)
If Not System.IO.Directory.Exists(path) Then
System.IO.Directory.CreateDirectory(path)
End If
End Sub
Private Sub btn_color_Click(ByVal sender As Object, ByVal e As EventArgs)
UpdateColor(color, txt_selected_color, False)
End Sub
Private Sub btn_background_Click(ByVal sender As Object, ByVal e As EventArgs)
UpdateColor(bgColor, txt_selected_bgcolor, True)
End Sub
Private Function ColorToHex(ByVal color As System.Drawing.Color) As String
Return $"#{color.R:X2}{color.G:X2}{color.B:X2}"
End Function
Private Sub UpdateColor(ByRef targetColor As Color, ByVal display As Control, ByVal isBackground As Boolean)
If select_color.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Dim hexColor = ColorToHex(select_color.Color)
targetColor = New Color(hexColor)
display.BackColor = select_color.Color
End If
End Sub
Private Sub btn_logo_Click(ByVal sender As Object, ByVal e As EventArgs)
If select_logo.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Try
logoBmp = New AnyBitmap(select_logo.FileName)
selected_logo.Image = Image.FromFile(select_logo.FileName)
Catch ex As Exception
ShowError("An error occurred while loading the logo", ex.Message)
End Try
End If
End Sub
Private Sub btn_generate_Click(ByVal sender As Object, ByVal e As EventArgs)
GenerateQRCode()
End Sub
Private Sub GenerateQRCode()
Try
Dim options = New QrOptions(QrErrorCorrectionLevel.High)
Dim myQr = QrWriter.Write(txt_QR.Text, options)
Dim style = CreateStyleOptions()
Dim qrImage = myQr.Save(style)
Dim fileName = $"{DateTime.Now:yyyyMMddHHmmssfff}_QR.png"
Dim fullPath = System.IO.Path.Combine(qrCodesDirectory, fileName)
qrImage.SaveAs(fullPath)
pictureBox.Image = Image.FromFile(fullPath)
Catch ex As Exception
ShowError("An error occurred during QR code generation or saving", ex.Message)
End Try
End Sub
Private Function CreateStyleOptions() As QrStyleOptions
'INSTANT VB TODO TASK: Throw expressions are not converted by Instant VB:
'ORIGINAL LINE: return new QrStyleOptions { BackgroundColor = bgColor, Color = color, Dimensions = txt_dimension.Value > 0 ? Convert.ToInt32(txt_dimension.Value) : throw new ArgumentException("Please select valid dimensions!"), Margins = Convert.ToInt32(txt_margin.Value), Logo = logoBmp != null ? new QrLogo { Bitmap = logoBmp, Width = 50, Height = 50, CornerRadius = 5 } : null };
Return New QrStyleOptions With {
.BackgroundColor = bgColor,
.Color = color,
.Dimensions = If(txt_dimension.Value > 0, Convert.ToInt32(txt_dimension.Value), throw New ArgumentException("Please select valid dimensions!")),
.Margins = Convert.ToInt32(txt_margin.Value),
.Logo = If(logoBmp IsNot Nothing, New QrLogo With {
.Bitmap = logoBmp,
.Width = 50,
.Height = 50,
.CornerRadius = 5
}, Nothing)
}
End Function
Private Sub btn_save_Click(ByVal sender As Object, ByVal e As EventArgs)
SaveQRCode()
End Sub
Private Sub SaveQRCode()
If pictureBox.Image Is Nothing Then
MessageBox.Show("There is no QR code to save.", "Error")
Return
End If
saveFileDialog.Filter = "PNG Files|*.png|JPEG Files|*.jpg"
saveFileDialog.Title = "Save QR Code"
saveFileDialog.FileName = "QRCode"
If saveFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
Try
pictureBox.Image.Save(saveFileDialog.FileName, DetermineImageFormat(saveFileDialog.FileName))
MessageBox.Show("QR Code has been saved!", "Success")
Catch ex As Exception
ShowError("An error occurred while saving the QR code", ex.Message)
End Try
End If
End Sub
Private Function DetermineImageFormat(ByVal filePath As String) As System.Drawing.Imaging.ImageFormat
Return If(System.IO.Path.GetExtension(filePath).ToLower() = ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg, System.Drawing.Imaging.ImageFormat.Png)
End Function
Private Sub btn_reset_Click(ByVal sender As Object, ByVal e As EventArgs)
ResetFields()
End Sub
Private Sub ResetFields()
txt_QR.Text = String.Empty
txt_dimension.Value = 200
txt_margin.Value = 0
bgColor = Color.White
color = Color.Black
txt_selected_color.BackColor = bgColor
txt_selected_bgcolor.BackColor = color
logoBmp = Nothing
selected_logo.Image = Nothing
pictureBox.Image = Nothing
End Sub
Private Shared Sub ShowError(ByVal title As String, ByVal message As String)
MessageBox.Show($"{title}: {message}", "Error")
End Sub
End Class
End Namespace
Schritt 5: Anwendung ausführen
Wenn die Anwendung ausgeführt wird, erscheint das Hauptfenster organisiert mit Abschnitten für Eingabe, Gestaltung, Ausgabe und Aktionen. Befolgen Sie die Benutzeroberfläche, um Daten einzugeben, Ihren QR-Code anzupassen und den QR-Code nach Wunsch zu erstellen und zu speichern.
Abschluss
Abschließend hat Sie dieser Leitfaden durch den Prozess der QR-Code-Erzeugung mit der IronQR-Bibliothek in einer C#-Anwendung geführt. Indem wir die Schritte von der Einrichtung Ihres Projekts in Visual Studio über die Integration der IronQR-Bibliothek, dem Entwerfen einer benutzerfreundlichen Oberfläche bis hin zur Entwicklung der Backend-Logik aufgeschlüsselt haben, haben wir gezeigt, wie zugänglich es ist, QR-Code-Funktionalität zu Ihren Anwendungen hinzuzufügen.
Für diejenigen, die daran interessiert sind, die Fähigkeiten von IronQR weiter zu erforschen, ist es erwähnenswert, dass IronQR eine kostenlose Testversion bietet, um Ihnen den Einstieg zu erleichtern. Falls Sie sich entscheiden, IronQR in Ihre Projekte zu integrieren, beginnen die Lizenzen bei $799 und bieten eine kostengünstige Lösung für die professionelle QR-Code-Generierung.
Häufig gestellte Fragen
Wie kann ich eine QR-Code-Generator-Anwendung in C# erstellen?
Um eine QR-Code-Generator-Anwendung in C# zu erstellen, können Sie die IronQR-Bibliothek verwenden. Beginnen Sie mit der Einrichtung einer Windows Forms-Anwendung in Visual Studio, installieren Sie IronQR über NuGet und entwerfen Sie das Frontend Ihrer Anwendung. Implementieren Sie die QR-Code-Generierungslogik mit den Funktionen von IronQR, wie Farbwahl und Logo-Integration.
Was sind die Vorteile der Verwendung einer .NET QR-Code-Bibliothek?
Eine .NET QR-Code-Bibliothek wie IronQR bietet erweiterte Funktionen wie hohe Genauigkeit beim Lesen von QR-Codes, Anpassungsoptionen für die Erzeugung von QR-Codes und Unterstützung für verschiedene .NET-Umgebungen. Sie ermöglicht auch das Ändern der Größe und das Styling von QR-Codes.
Wie gehe ich mit Fehlern bei der Generierung von QR-Codes in C# um?
In C# können Sie Fehler während der QR-Code-Generierung durch die Implementierung geeigneter Fehlerbehandlungsmechanismen mit try-catch-Blöcken handhaben. IronQR erleichtert das reibungslose Fehlermanagement, sodass etwaige Probleme bei der Erstellung von QR-Codes effizient gelöst werden.
Kann ich Logos in QR-Codes mit einer QR-Code-Bibliothek einbetten?
Ja, Sie können Logos in QR-Codes mit der IronQR-Bibliothek einbetten. Diese Funktion ermöglicht es Ihnen, die Markenbildung Ihrer QR-Codes durch die Integration von benutzerdefinierten Logos zu verbessern.
Wie speichere ich QR-Codes, die in einer C#-Anwendung generiert wurden?
Sie k\u00f6nnen QR-Codes, die in einer C#-Anwendung generiert wurden, speichern, indem Sie die Funktionalit\u00e4t von IronQR nutzen, um Speicherverzeichnisse anzugeben. Dies erm\u00f6glicht es Ihnen, generierte QR-Codes effizient innerhalb Ihrer Anwendung zu verwalten und zu speichern.
Welche Schritte sind notwendig, um einen Lizenzschlüssel für eine QR-Code-Bibliothek zu konfigurieren?
Um einen Lizenzschlüssel für IronQR zu konfigurieren, müssen Sie den Lizenzierungscode in Ihre Anwendung einbinden. Dies beinhaltet typischerweise das Hinzufügen spezifischer Codezeilen, die von IronQR bereitgestellt werden, um die Bibliothek mit Ihrer erworbenen Lizenz zu aktivieren.
Wie kann ich QR-Codes mit bestimmten Farben in meiner C#-Anwendung gestalten?
IronQR ermöglicht es Ihnen, QR-Codes mit bestimmten Farben zu gestalten, indem Sie die Farb-Anpassungsfunktionen verwenden. Sie können Farben für den QR-Code-Vordergrund und -Hintergrund mit integrierten Farbauswahldialogen in Ihrer Anwendung auswählen.
Wie lautet der Prozess zur Installation einer QR-Code-Bibliothek in Visual Studio?
Um eine QR-Code-Bibliothek wie IronQR in Visual Studio zu installieren, verwenden Sie den NuGet-Paket-Manager. Suchen Sie nach 'IronQR' und klicken Sie auf 'Installieren', um sie Ihrem Projekt hinzuzufügen. Alternativ können Sie die Paket-Manager-Konsole mit dem Befehl 'Install-Package IronQR' verwenden.

