Write QR Codes in C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

Einführung

Mit IronQR können Entwickler QR-Codes für beliebte Bildformate erstellen und sie mit Hintergrundfarben, Rändern, Logos personalisieren und sogar in PDFs einfügen. Für den fortgeschrittenen Einsatz bietet es auch Kontrolle über Fehlerkorrektur und Versionen.

Dieser Artikel wird die Hauptmerkmale von IronQR mit Beispielen erkunden und Ihnen helfen zu verstehen, wie man es für das Schreiben von QR-Codes in C# verwendet und effektiv in Ihren Projekten anwendet.

Inhaltsverzeichnis

Nutzen Sie IronQR heute kostenlos in Ihrem Projekt.

Erster Schritt:
green arrow pointer

Eingabedaten

Text, URLs, Zahlen

IronQR kann eine Vielzahl von Datentypen, einschließlich Text, URLs und Zahlen, in QR-Codes konvertieren. Egal ob Sie QR-Code-Links oder Text für Marketing und Kommunikation erstellen, numerische Codes für Bestandsverwaltung, oder binäre Daten oder Streams in lesbare QR-Codes codieren, IronQR bietet Ihnen die Unterstützung, die Sie benötigen.

Zusätzlich ist die API unkompliziert. Die QrWriter-Klasse bietet mehrere Überladungen, die es ermöglichen, verschiedene Arten von Daten als Eingabe zu verwenden, um die Komplexität zu reduzieren und den Prozess zu straffen.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-1.cs
using IronQr;
using IronSoftware.Drawing;

string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/qr/";
string alphanumeric = "WATERSKU-12356";

// Create QR code
QrCode textQr = QrWriter.Write(text);
// Save QR code as a bitmap
AnyBitmap textQrImage = textQr.Save();
// Save QR code as file
textQrImage.SaveAs("textQr.png");

QrCode urlQr = QrWriter.Write(url);
AnyBitmap urlQrImage = urlQr.Save();
urlQrImage.SaveAs("urlQr.png");

QrCode alphanumericQr = QrWriter.Write(alphanumeric);
AnyBitmap alphanumericQrImage = alphanumericQr.Save();
alphanumericQrImage.SaveAs("alphanumericQr.png");
Imports IronQr
Imports IronSoftware.Drawing

Private text As String = "Hello, World!"
Private url As String = "https://ironsoftware.com/csharp/qr/"
Private alphanumeric As String = "WATERSKU-12356"

' Create QR code
Private textQr As QrCode = QrWriter.Write(text)
' Save QR code as a bitmap
Private textQrImage As AnyBitmap = textQr.Save()
' Save QR code as file
textQrImage.SaveAs("textQr.png")

Dim urlQr As QrCode = QrWriter.Write(url)
Dim urlQrImage As AnyBitmap = urlQr.Save()
urlQrImage.SaveAs("urlQr.png")

Dim alphanumericQr As QrCode = QrWriter.Write(alphanumeric)
Dim alphanumericQrImage As AnyBitmap = alphanumericQr.Save()
alphanumericQrImage.SaveAs("alphanumericQr.png")
$vbLabelText   $csharpLabel

Binär & Streams

Ähnlich können wir binäre Daten und Streams mit der gleichen Write-Methode wie zuvor erwähnt in QR-Codes konvertieren.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-2.cs
using IronQr;
using IronSoftware.Drawing;
using System.Text;

byte[] bytes = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/");

// Create QR code
QrCode bytesQr = QrWriter.Write(bytes);

// Save QR code as a bitmap
AnyBitmap qrImage = bytesQr.Save();

// Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png");
Imports IronQr
Imports IronSoftware.Drawing
Imports System.Text

Private bytes() As Byte = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/qr/")

' Create QR code
Private bytesQr As QrCode = QrWriter.Write(bytes)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = bytesQr.Save()

' Save QR code bitmap to file
qrImage.SaveAs("bytesQr.png")
$vbLabelText   $csharpLabel

class Program { static void Main() { // Erstellen Sie eine QR-Code-Schreiberinstanz QrWriter writer = QrWriter.CreateQrCode();

    // Beispiel binäre Daten
    byte[] data = { 0x01, 0x02, 0x03, 0x04 };

    // Schreibe binäre Daten in QR-Code
    writer.Write(data)
          .SaveAs("binary-qr.png");

    // Beispiel mit einem Memorystream
    using (MemoryStream stream = new MemoryStream(data))
    {
        writer.Write(stream)
              .SaveAs("stream-qr.png");
    }
}

}


Die `Write`-Methode hat Überladungen, die sowohl Byte-Arrays als auch Streams als Eingaben akzeptieren. Für Streams können wir einen `MemoryStream` aus dem Byte-Array erstellen und dann in einen QR-Code umwandeln. Dies ist nützlich, wenn Benutzer mehr fein abgestimmte Kontrolle über Datenblöcke benötigen, da Streams speichereffizienter sein können.

```cs
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-3.cs

QR-Codes exportieren

IronQR ist flexibel und anpassungsfähig an verschiedene Anwendungsfälle, die unterschiedliche Dateiformate erfordern. Sie können QR-Codes in mehreren Formaten wie JPG, PNG, GIF und TIFF mit der SaveAs-Methode speichern.

Als Bild speichern

Die SaveAs-Methode von AnyBitmap erkennt das Dateiformat automatisch basierend auf dem bereitgestellten Dateipfad. In diesem Beispiel habe ich einen Dateipfad angegeben, der mit .png endet.

Hinweis:Bei Verwendung der SaveAs-Methode beachten Sie bitte, dass kein Standard-Bildformat angegeben ist. Wenn Sie eine nicht erkannte Erweiterung eingeben oder einen Tippfehler im Dateipfad machen, wird das Bild mit der falschen Erweiterung gespeichert.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-4.cs
using IronQr;
using IronSoftware.Drawing;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qr.png");
Imports IronQr
Imports IronSoftware.Drawing

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qr.png")
$vbLabelText   $csharpLabel

System.Drawing.Images

Das Konvertieren von Bildern in das Microsoft-System.Drawing.Images-Objekt ermöglicht es Ihnen, die Bitmap-Klasse zu verwenden, um den QR-Code in einem Dateipfad zu speichern. In diesem Beispiel speichert die Save-Methode den QR-Code als PNG-Datei im Pfad qrBitmap.png.

Hinweis:System.Drawing.Common wird nur auf der Windows-Plattform unterstützt.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-5.cs
using IronQr;
using System.Drawing;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

// Save QR code as a bitmap
Bitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.Save("qrBitmap.png");
Imports IronQr
Imports System.Drawing

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

' Save QR code as a bitmap
Private qrImage As Bitmap = qr.Save()

' Save QR code bitmap as file
qrImage.Save("qrBitmap.png")
$vbLabelText   $csharpLabel

IronSoftware.Drawing

Aufgrund der fehlenden Plattformkompatibilität von System.Drawing.Common können Entwickler auf Probleme stoßen, wenn sie plattformübergreifende Anwendungen pflegen. IronQR kann sowohl System.Drawing.Common als auch IronSoftware.Drawing nutzen.

IronQR verwendet die AnyBitmap-Klasse von IronSoftware.Drawing, eine universell kompatible Bitmap-Klasse, die implizit auf folgende Klassen gecastet werden kann:

  • System.Drawing.Bitmap
  • System.Drawing.Image
  • SkiaSharp.SKBitmap
  • SixLabors.ImageSharp
  • Microsoft.Maui.Graphics.Platform.PlatformImage

Mit dieser leistungsstarken Open-Source-Bibliothek erreicht IronQR plattformübergreifende Unterstützung und Kompatibilität mit .NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard und .NET Framework 4.6.2+. Um mehr über die Bibliothek zu erfahren, besuchen Sie bitte die IronSoftware.Drawing-Website.

Auf PDF stempeln

IronQR ermöglicht es Entwicklern, QR-Codes auf bestehende PDF-Dokumente zu stempeln, sodass andere leicht auf Links oder zusätzliche Ressourcen zugreifen können. Das Stempeln von QR-Codes sowohl auf Einzel- als auch auf Mehrseiten wird unterstützt.

Auf eine einzelne Seite stempeln

Nachdem der QR-Code erstellt wurde, rufen Sie die StampToExistingPdfPage-Methode des QrCode-Objekts auf. Diese Methode erfordert den Dateipfad, die Koordinaten (x und y), die Seitennummer und ein optionales Passwort, wenn das PDF passwortgeschützt ist. Sobald die Argumente bereitgestellt sind, stempelt die Methode den QR-Code und speichert das PDF.

Hinweis:Diese Methode basiert auf den PDF-Seiten, wobei die Seitennummerierung bei 1 statt bei 0 beginnt.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-6.cs
using IronQr;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

string filepath = "example.pdf";
int x = 100;
int y = 150;
int page = 1;

// Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page);
Imports IronQr

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private page As Integer = 1

' Stamp QR code to (100, 150) of the pdf on page 1
qr.StampToExistingPdfPage(filepath, x, y, page)
$vbLabelText   $csharpLabel

Auf mehrere Seiten stempeln

Ähnlich wie im obigen Beispiel, besteht der Hauptunterschied darin, dass die StampToExistingPdfPages-Methode eine Liste von Seitennummern anstelle von nur einer nimmt.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-7.cs
using IronQr;
using System.Collections.Generic;

// Create a QR code object
QrCode qr = QrWriter.Write("hello world");

string filepath = "example.pdf";
int x = 100;
int y = 150;
List<int> pages = new List<int>();
pages.Add(1);
pages.Add(2);
pages.Add(3);
pages.Add(4);

// Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages);
Imports IronQr
Imports System.Collections.Generic

' Create a QR code object
Private qr As QrCode = QrWriter.Write("hello world")

Private filepath As String = "example.pdf"
Private x As Integer = 100
Private y As Integer = 150
Private pages As New List(Of Integer)()
pages.Add(1)
pages.Add(2)
pages.Add(3)
pages.Add(4)

' Stamp QR code to (100, 150) of the pdf on pages 1-4
qr.StampToExistingPdfPages(filepath, x, y, pages)
$vbLabelText   $csharpLabel

Ausgabe von beiden Beispielen

Alternativtext


QR-Code-Optionen

IronQR bietet umfangreiche Anpassungsoptionen zur Feinabstimmung des QR-Code-Verhaltens und der Funktionalität. Die QrOptions-Klasse bietet verschiedene Parameter, wie Versionskontrolle, Kodierungstyp, Zeichenkodierung und Fehlerkorrekturstufen. Lassen Sie uns diese Optionen im Detail erkunden.

Kodierung

IronQR unterstützt mehrere Arten von QR-Codes sowohl für die Erstellung als auch für das Lesen. Nachfolgend sind die unterstützten Typen aufgeführt:

  • QRCode: Dies ist der Standard-QR-Code, der heute häufig verwendet wird. Er kann bis zu 7.089 numerische Zeichen oder 4.296 alphanumerische Zeichen speichern.
  • MicroQRCode: Eine kleinere Version des Standard-QR-Codes, der bis zu 35 numerische Zeichen oder 21 alphanumerische Zeichen speichern kann.
  • RMQRCode: Der rechteckige Micro-QR-Code ist eine kompakte Version des QR-Codes und bietet Flexibilität im Seitenverhältnis.
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-8.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change encoding to micro QR code
    Encoding = IronQr.Enum.QrEncoding.MicroQRCode,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.Encoding = IronQr.Enum.QrEncoding.MicroQRCode}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

Fehlerkorrektur

IronQR verwendet standardmäßige QR-Fehlerkorrektur, um sicherzustellen, dass alle erzeugten QR-Codes fehlertolerant und zuverlässig sind, selbst unter schwierigen Bedingungen. Zusätzlich ermöglicht es IronQR, die totale Kontrolle über das Fehlerkorrekturniveau zur weiteren Feinabstimmung zu haben.

Es stehen vier Fehlerkorrekturstufen zur Verfügung, bereitgestellt von QrErrorCorrectionLevel:

  • Highest: 30% Fehlerkorrektur
  • High: 25% Fehlerkorrektur
  • Medium: 15% Fehlerkorrektur
  • Low: 7% Fehlerkorrektur
:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-9.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change error correction level to medium
    ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.ErrorCorrectionLevel = QrErrorCorrectionLevel.Medium}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

Höhere Fehlerkorrektur bietet höhere Fehlertoleranz beim Lesen des QR-Codes, was bedeutet, dass er bei niedrigeren Auflösungen leichter gescannt werden kann, im Vergleich zu einem mit niedriger Fehlerkorrektur. Sie können basierend auf Ihren Anwendungsfällen testen.

Alternativtext

QR-Code-Version

Sie können die QR-Code-Version anpassen, um mehr Daten zu speichern. Höhere Versionen eignen sich ideal für Inventar- oder Logistikanwendungen, während niedrigere Versionen gut für kleinere Daten wie kurze URLs geeignet sind. Ändern Sie einfach die Version-Eigenschaft im QrOptions-Objekt und übergeben Sie sie an die Write-Methode, um den QR-Code entsprechend zu generieren.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-10.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change QR code version to 40
    Version = 40,
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.Version = 40}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

Alternativtext

Wie Sie aus der Ausgabe ersehen können, ist die Version 40 des QR-Codes im Vergleich zu Version 5 sehr komplex und dicht.

Niedrigere Versionen erfordern ein präziseres Scannen und können ohne hochauflösende Scanner schwer zu scannen sein. Höhere Versionen hingegen sind leichter zu scannen, selbst mit niedrigauflösenden Kameras. Für eine ausführlichere Anleitung zur Auswahl der QR-Version basierend auf der Kapazität, schauen Sie bitte auf die QR-Versionenliste.

Zeichenkodierung

Diese Option bestimmt, wie der QR-Code kodiert wird. In unserem Beispiel haben wir sie auf 'UTF-32' geändert, während die Standard-Zeichenkodierung 'ISO-8859-1' ist.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-11.cs
using IronQr;
using IronSoftware.Drawing;

QrOptions options = new QrOptions
{
    // Change character encoding to UTF-32
    CharacterEncoding = "UTF-32"
};

// Create QR code
QrCode qr = QrWriter.Write("1234", options);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save();

// Save QR code bitmap as file
qrImage.SaveAs("qrImage.png");
Imports IronQr
Imports IronSoftware.Drawing

Private options As New QrOptions With {.CharacterEncoding = "UTF-32"}

' Create QR code
Private qr As QrCode = QrWriter.Write("1234", options)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save()

' Save QR code bitmap as file
qrImage.SaveAs("qrImage.png")
$vbLabelText   $csharpLabel

QR-Code-Styling

Neben seinen benutzerfreundlichen Methoden und der Flexibilität im Umgang mit Eingabedaten bietet IronQR zahlreiche Optionen zur Personalisierung und zum Gestalten von QR-Codes, um sie einzigartig zu machen. Die QrStyleOptions-Klasse bietet verschiedene Parameter zur Anpassung aller Aspekte eines QR-Codes. Lassen Sie uns die verfügbaren Optionen erkunden.

Größe ändern

Um die Größe des QR-Codes zu ändern, können Sie die Dimensions-Eigenschaft des QrStyleOptions-Objekts festlegen und dann an die Save-Methode übergeben. Standardmäßig wird der QR-Code mit 300px gespeichert. In diesem Beispiel haben wir den QR-Code mit 600px statt 300px gespeichert.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-12.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change the dimensions to 600px
    Dimensions = 600,
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {.Dimensions = 600}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLResized.png")
$vbLabelText   $csharpLabel

Alternativtext

Ränder & Grenzen

Um die Ränder und Grenzen anzupassen, können wir die Margins-Eigenschaft der QrStyleOptions-Klasse verwenden. Diese Eigenschaft steuert die Ränder des QR-Codes auf allen Seiten, mit einem Standardwert von 10px. In unserem Beispiel haben wir den Rand auf 20px gesetzt.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-13.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change margins to 20px
    Margins = 20
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {.Margins = 20}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")
$vbLabelText   $csharpLabel

Alternativtext

Ränder für jede Seite ändern

IronQR ermöglicht es Benutzern auch, spezifische Ränder für jede Seite anzugeben, was mehr Feinabstimmung ermöglicht.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-14.cs
using IronQr;
using IronSoftware.Drawing;

QrStyleOptions styleOptions = new QrStyleOptions()
{
    // Change margins
    MarginBottom = 30,
    MarginTop = 100,
    MarginRight = 40,
    MarginLeft = 20,
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png");
Imports IronQr
Imports IronSoftware.Drawing

Private styleOptions As New QrStyleOptions() With {
	.MarginBottom = 30,
	.MarginTop = 100,
	.MarginRight = 40,
	.MarginLeft = 20
}

Private url As String = "https://ironsoftware.com/csharp/qr/"

' Create QR code
Private qr As QrCode = QrWriter.Write(url)

' Save QR code as a bitmap
Private qrImage As AnyBitmap = qr.Save(styleOptions)

' Save QR code bitmap as file
qrImage.SaveAs("qrURLMarginMultiple.png")
$vbLabelText   $csharpLabel

Umfärben

Wir können mithilfe der QrStyleOptions-Klasse Farben zum QR-Code und seinem Hintergrund hinzufügen. Das Anpassen von Farben macht den QR-Code einzigartiger und auffälliger. Sie können die Farbe mit den Eigenschaften Color und BackgroundColor ändern. Stellen Sie sicher, dass Sie IronSoftware.Drawing für eine Liste der verfügbaren Farben importieren.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;

// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");

// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
    Logo = new QrLogo(logo, 50, 50, 10),
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Alternativtext

Logo hinzufügen

Zusätzlich zu Farben und Abmessungen können Sie auch Ihr Unternehmenslogo auf dem QR-Code anbringen. Dies hilft den Benutzern, den QR-Code sofort mit Ihrer Marke in Verbindung zu bringen und wiederzuerkennen. Die Logo-Eigenschaft macht es einfach, einen QR-Code durch das Hinzufügen des Logos Ihres Unternehmens zu personalisieren.

:path=/static-assets/qr/content-code-examples/tutorials/csharp-qr-writing-15.cs
using IronQr;
using IronSoftware.Drawing;

// Load new logo image
AnyBitmap logo = AnyBitmap.FromFile("sample.png");

// Add new logo to QR code style options
QrStyleOptions styleOptions = new QrStyleOptions()
{
    Logo = new QrLogo(logo, 50, 50, 10),
};

string url = "https://ironsoftware.com/csharp/qr/";

// Create QR code
QrCode qr = QrWriter.Write(url);

// Save QR code as a bitmap
AnyBitmap qrImage = qr.Save(styleOptions);

// Save QR code bitmap as file
qrImage.SaveAs("qrURLColored.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Alternativtext

Das Logo anpassen

Die QrLogo-Klasse ermöglicht eine weitere Anpassung des Erscheinungsbilds des Logos. Nachfolgend sind die verfügbaren Eigenschaften aufgeführt:

  • Bitmap: Repräsentiert das Bild, das Sie als Logo verwenden möchten.
  • Width: Repräsentiert die Breite des Logos. Der Standardwert ist 0.
  • Height: Repräsentiert die Höhe des Logos. Der Standardwert ist 0.
  • CornerRadius: Repräsentiert den Radius für die Abrundung der Ecken des Logos. Standardmäßig ist es auf 0 gesetzt, was bedeutet, dass das Logo eckige Ecken hat.
using IronQRCode;
using IronSoftware.Drawing;

class Program
{
    static void Main()
    {
        QrStyleOptions styleOptions = new QrStyleOptions
        {
            Logo = new QrLogo
            {
                Bitmap = AnyBitmap.FromBitmap("path/to/logo.png"),
                Width = 50,
                Height = 50,
                CornerRadius = 5
            }
        };

        QrCode qr = QrWriter.CreateQrCode()
                               .Write("Customized Logo Example");

        qr.SaveAs("example-customized-logo-qr.png", styleOptions);
    }
}
using IronQRCode;
using IronSoftware.Drawing;

class Program
{
    static void Main()
    {
        QrStyleOptions styleOptions = new QrStyleOptions
        {
            Logo = new QrLogo
            {
                Bitmap = AnyBitmap.FromBitmap("path/to/logo.png"),
                Width = 50,
                Height = 50,
                CornerRadius = 5
            }
        };

        QrCode qr = QrWriter.CreateQrCode()
                               .Write("Customized Logo Example");

        qr.SaveAs("example-customized-logo-qr.png", styleOptions);
    }
}
Imports IronQRCode
Imports IronSoftware.Drawing

Friend Class Program
	Shared Sub Main()
		Dim styleOptions As New QrStyleOptions With {
			.Logo = New QrLogo With {
				.Bitmap = AnyBitmap.FromBitmap("path/to/logo.png"),
				.Width = 50,
				.Height = 50,
				.CornerRadius = 5
			}
		}

		Dim qr As QrCode = QrWriter.CreateQrCode().Write("Customized Logo Example")

		qr.SaveAs("example-customized-logo-qr.png", styleOptions)
	End Sub
End Class
$vbLabelText   $csharpLabel

Überprüfen der Fehlertoleranz

Zusätzlich zu umfangreicher Flexibilität bei Dateiformaten und Anpassungen erstreckt sich die Flexibilität auch auf Fehlerbehebungs- und Fehlerbehandlungsaspekte. IronQR bietet verschiedene Werkzeuge für Entwickler zum Umgang mit Ausnahmen und zum Schreiben von Komponententests zur Überprüfung von Anwendungen.

CheckSums

QR-Codes können manchmal beschädigt werden, aber IronQR enthält eingebaute Prüfsummen und Datenkorrektur, um sie funktionsfähig zu halten. Es verwendet den Reed-Solomon-Fehlerkorrektur-Algorithmus, der sicherstellt, dass QR-Codes fehlertolerant bleiben.

Detaillierte Fehlermeldungen

IronQR bietet detaillierte Fehlermeldungen, die Benutzern helfen, Probleme schnell zu identifizieren. Diese Meldungen enthalten eine Liste spezifischer Ausnahmen, was das Debuggen und die Problemlösung vereinfacht. Nachfolgend ist eine Liste der IronQrException, die von der Bibliothek verwendet werden.

  • IronQrEncodingException: Eine Unterklasse von IronQrException, dieser Fehler tritt auf, wenn es ein Problem beim Schreiben des QR-Codes gibt. Zum Beispiel wird es erscheinen, wenn ein Benutzer versucht, einen QR-Code aus einer leeren Zeichenfolge zu erstellen.

Alternativtext

  • IronQrFileException: Eine Unterklasse von IronQrException, dieser Fehler tritt auf, wenn ein dateibezogenes Problem auftritt.

  • IronQrPdfPasswordExcception: Eine Unterklasse von IronQrException, dieser Fehler tritt auf, wenn das PDF, das ein Benutzer stempeln möchte, passwortgeschützt ist und entweder kein Passwort oder ein falsches Passwort angegeben wird. Es deckt auch andere PDF-bezogene Fehler ab, wie wenn das PDF nicht geöffnet werden kann, wie im Beispiel gezeigt.

Alternativtext

Abschluss

IronQR bietet eine umfassende Palette an Methoden zur Erstellung und Anpassung von QR-Codes in .NET-Anwendungen. Mit seinen robusten Funktionen können Entwickler QR-Codes mit verschiedenen Datenkodierungen, visuellen Stilen und Fehlerkorrekturstufen einfach erstellen. Der Support der Bibliothek für diverse Ausgabeformate und nahtlose Integration in bestehende Dokumente macht es zu einem vielseitigen Werkzeug für jedes QR-Code-Projekt. Ob Sie nun grundlegende QR-Codes benötigen oder fortgeschrittene, markenkonforme Lösungen, IronQR bietet die Flexibilität und Funktionalität, um Ihre Bedürfnisse effizient zu erfüllen.

To learn more, check out the IronQR documentation, start exploring with a free trial, and review the licensing options to see which plan best suits your needs.

Häufig gestellte Fragen

Wie generiere ich einen QR-Code in C#?

Sie können einen QR-Code in C# erstellen, indem Sie die QrWriter-Klasse in IronQR verwenden. Diese Klasse ermöglicht es Ihnen, Daten in einen QR-Code zu schreiben und in verschiedenen Bildformaten zu speichern. Verwenden Sie einfach die Write-Methode, um Ihre Daten zu codieren, und SaveAs, um den QR-Code auszugeben.

Welche Anpassungen kann ich an QR-Codes vornehmen?

IronQR ermöglicht es Ihnen, QR-Codes anzupassen, indem Sie deren Farben ändern, Logos hinzufügen, Größen ändern und Ränder anpassen. Verwenden Sie die QrStyleOptions-Klasse, um diese Anpassungen vorzunehmen.

Kann ich einen QR-Code in ein PDF einbetten?

Ja, Sie können einen QR-Code in ein PDF einbetten, indem Sie die Methoden StampToExistingPdfPage oder StampToExistingPdfPages in IronQR verwenden. Damit können Sie den Ort und die Seiten angeben, auf denen der QR-Code erscheinen soll.

{"14":"Wie kann ich Fehler bei der Erstellung von QR-Codes behandeln?<\/S>"}

IronQR verfügt über robuste Fehlerbehandlungsfunktionen, die Fehlermeldungen wie IronQrEncodingException, IronQrFileException und IronQrPdfPasswordException bereitstellen, um bei der Fehlersuche und -behebung zu helfen.

In welche Formate kann ich QR-Codes exportieren?

{"15":"Mit IronQR k\u00f6nnen Sie QR-Codes in verschiedene Formate exportieren, einschlie\u00dflich JPG, PNG, GIF und TIFF. Die SaveAs<\/code>-Methode erm\u00f6glicht es Ihnen, das gew\u00fcnschte Format f\u00fcr Ihren QR-Code-Ausgabe anzugeben.<\/S>"}

Unterstützt diese Bibliothek plattformübergreifende Entwicklung?

Ja, IronQR unterstützt plattformübergreifende Entwicklung durch die Iron Software.Drawing-Bibliothek, was es mit verschiedenen .NET-Versionen und Plattformen kompatibel macht.

Ist es möglich, ein Logo zu einem QR-Code für Branding-Zwecke hinzuzufügen?

Sie können ein Logo zu einem QR-Code hinzufügen, indem Sie die Logo-Eigenschaft in der QrStyleOptions-Klasse in IronQR festlegen, was gebrandete QR-Codes mit benutzerdefinierter Logo-Anpassung ermöglicht.

Was ist der Zweck der Fehlerkorrektur in QR-Codes?

Die Fehlerkorrektur in QR-Codes, unterstützt von IronQR, stellt sicher, dass QR-Codes lesbar bleiben, selbst wenn sie teilweise beschädigt sind. Diese Funktion bietet vier Korrekturstufen: Höchste, Hoch, Mittel und Niedrig, um unterschiedliche Anwendungsfälle zu berücksichtigen.

Welche Datentypen können in QR-Codes codiert werden?

IronQR kann eine Vielzahl von Datentypen in QR-Codes codieren, einschließlich Text, URLs, Zahlen, Binärdaten und Streams, was Flexibilität bei der darstellbaren Datenmenge bietet.

{"13":"Wie kann ich einen QR-Code mit einer URL in C# erstellen?<\/S>"}

Um einen QR-Code mit einer URL in C# zu erstellen, verwenden Sie die QrWriter-Klasse in IronQR. Nutzen Sie die Write-Methode, um die URL zu codieren, und SaveAs, um den QR-Code als Bild zu speichern.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 47,669 | Version: 2025.11 gerade veröffentlicht