QR-Code-Barcodes mit dem VintaSoft Barcode .NET SDK erkennen und generieren

Blog-Kategorie: Barcode.NET

24.06.2025

Das VintaSoft Barcode .NET SDK ist das professionelle, plattformübergreifende SDK für Windows, Linux und macOS, mit dem QR-Codes erkannt und generiert werden können Barcodes in .NET, WPF, Web, MAUI. Mit nur wenigen Codezeilen können Sie Ihrer .NET-Anwendung die Fähigkeit hinzufügen, QR-Codes zu erkennen und zu generieren.

Was ist ein QR-Code?

Ein QR-Code ist ein zweidimensionaler Matrix-Barcode und der weltweit am häufigsten verwendete zweidimensionale Barcode. Der Name "Quick Response" (schnelle Antwort) spiegelt die Idee seiner Entwicklung wider: schnelle Erkennung aus jedem beliebigen Winkel. Ein charakteristisches Merkmal des QR-Codes sind die deutlich erkennbaren Suchmuster - schwarze Quadrate an den Ecken des Barcodes.


Eigenschaften des QR-Codes

Alle modernen Hersteller verwenden QR-Codes, die im Standard ISO/IEC 18004 beschrieben sind. Der AIM-Standard ITS/97-001 beschreibt QR-Code Modell 1, eine veraltete Version des Barcodes, deren Verwendung nicht empfohlen wird.

Der QR-Code kann gemischte Daten verschiedener Typen in vier Kodierungsmodi speichern:

Der QR-Code verwendet den Reed-Solomon-Fehlerkorrekturalgorithmus, der die Erkennung beschädigter Barcodes ermöglicht. Bei der Erstellung eines Barcodes wird je nach den erwarteten Nutzungsbedingungen eine von vier Fehlerkorrekturstufen ausgewählt: Je höher die Fehlerkorrekturstufe, desto weniger Daten können im Barcode platziert werden.


Die Struktur der Barcode-Matrix

QR- und Micro-QR-Barcode-Matrizen haben die folgende Struktur:



Was ist ein Micro-QR-Barcode?

Der Micro-QR-Barcode ist eine kompakte Version des QR-Codes. Er wird üblicherweise zur Kennzeichnung kleiner Verpackungen verwendet:


Der Micro-QR-Barcode hat nur ein Suchmuster. Die Datenmenge in diesem Barcode ist sehr begrenzt:


Was ist ein "GS1 QR"-Barcode?

Der "GS1 QR"-Barcode ist ein QR-Code, der Werte im GS1-Systemdatenformat speichert. Das VintaSoft Barcode .NET SDK kann "GS1 QR"-Barcodes generieren und erkennen.
Hier ist ein Bild des "GS1 QR"-Barcodes:


Was ist ein "GS1 Digital Link QR"-Barcode?

"Der GS1 Digital Link QR-Barcode ist ein QR-Barcode, der Werte im GS1 Digital Link-Format speichert. Das VintaSoft Barcode .NET SDK kann GS1 Digital Link QR-Barcodes generieren und erkennen.
Hier ist ein Bild des "GS1 Digital Link QR"-Barcodes:


Was ist ein "XFA Compressed QR"-Barcode?

Der XFA Compressed QR-Barcode ist ein QR-Barcode, der Daten gemäß der Adobe XFA-Spezifikation komprimiert speichert. Das VintaSoft Barcode .NET SDK kann "XFA Compressed QR"-Barcodes generieren und erkennen.
Hier ist ein Bild des "XFA Compressed QR"-Barcodes:


Was ist ein "Swiss QR Code"-Barcode?

Der "Swiss QR Code"-Barcode ist eine Untermenge des QR-Barcodes, der seit dem 1. Oktober 2022 in der Schweiz und in Liechtenstein für Rechnungen verwendet wird. Das VintaSoft Barcode .NET SDK kann "Swiss QR Code"-Barcodes generieren und erkennen.
Hier ist ein Bild des "Swiss QR Code"-Barcodes:


Was ist ein "HIBC LIC QR Code"-Barcode?

Der "HIBC LIC QR Code"-Barcode ist eine Untergruppe des QR-Code-Barcodes und wird zur UDI-Konformität von Medizinprodukten verwendet, um Hersteller, Produkte und Chargen zu identifizieren. Das VintaSoft Barcode .NET SDK kann "HIBC LIC QR Code"-Barcodes generieren und erkennen.
Hier ist ein Bild des "HIBC LIC QR-Code"-Barcodes:


Spezielles Symbol "Struktur anhängen"

Der QR-Code unterstützt ein spezielles Symbol namens "StructuredAppendCharacter" (siehe "StructuredAppend"), mit dem Daten in mehrere QR-Code-Abschnitte aufgeteilt werden können. Das Symbol ist im Barcode kodiert und ermöglicht die eindeutige Bestimmung der Anzahl und Reihenfolge der Barcode-Abschnitte. Diese Funktion kann verwendet werden, um einen länglichen Bereich zu markieren oder große Datenmengen zu speichern.


Mit dem VintaSoft Barcode .NET SDK können Sie Daten aufteilen und mehrere QR-Code-Barcodes generieren, die durch das Symbol "Struktur anhängen" verknüpft sind. Das SDK enthält außerdem einen Algorithmus zum Wiederherstellen von Daten aus einem Satz von QR-Code-Barcodes, die mithilfe des Symbols "Struktur anhängen" aufgeteilt wurden.


Welche QR-Code-Barcodes kann das VintaSoft Barcode .NET SDK erkennen?

Das VintaSoft Barcode .NET SDK erkennt alle Arten von QR- und Micro-QR-Barcodes. Für die Erkennung werden einzigartige Algorithmen verwendet, die es ermöglichen, Barcodes mit verschiedenen Problemen schnell zu erkennen:


Hier ist ein C#-Code, der zeigt, wie QR-Code-Barcodes in einem mit einer Kamera aufgenommenen Bild erkannt werden:
/// <summary>
/// Reads QR Code barcodes from a <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="bitmap">A bitmap with barcodes.</param>
public static void ReadQRCodeBarcodesFromBitmap(System.Drawing.Bitmap bitmap)
{
    // create barcode reader
    using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
    {
        // specify that reader must search for QR Code barcodes
        reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.QR;

        // read barcodes from image
        Vintasoft.Barcode.IBarcodeInfo[] infos = Vintasoft.Barcode.GdiExtensions.ReadBarcodes(reader, bitmap);

        // if barcodes are not detected
        if (infos.Length == 0)
        {
            System.Console.WriteLine("No barcodes found.");
        }
        // if barcodes are detected
        else
        {
            // get information about extracted barcodes

            System.Console.WriteLine(string.Format("{0} barcodes found:", infos.Length));
            System.Console.WriteLine();
            for (int i = 0; i < infos.Length; i++)
            {
                Vintasoft.Barcode.IBarcodeInfo info = infos[i];
                System.Console.WriteLine(string.Format("[{0}:{1}]", i + 1, info.BarcodeType));
                System.Console.WriteLine(string.Format("Value:      {0}", info.Value));
                System.Console.WriteLine(string.Format("Region:     {0}", info.Region));
                System.Console.WriteLine();
            }
        }
    }
}


Welche QR-Code-Barcodes kann das VintaSoft Barcode .NET SDK generieren?

Das VintaSoft Barcode .NET SDK generiert alle Arten von QR- und Micro-QR-Barcodes.

Hier ist ein C#-Code, der zeigt, wie man ein Rasterbild eines QR-Code-Barcodes generiert:
/// <summary>
/// Returns the QR Code barcode as <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="value">The barcode value.</param>
/// <returns>A <see cref="System.Drawing.Bitmap"/> object.</returns>
public static System.Drawing.Bitmap GetQRCodeBarcodeAsBitmap(string value)
{
    // create the barcode writer
    using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
    {
        // set barcode writer settings
        barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.QR;
        barcodeWriter.Settings.Value = value;

        // get a barcode image as System.Drawing.Bitmap
        return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
    }
}


Hier ist ein C#-Code, der zeigt, wie man ein Rasterbild eines Micro-QR-Barcodes generiert:
/// <summary>
/// Returns the Micro QR barcode as <see cref="System.Drawing.Bitmap"/>.
/// </summary>
/// <param name="value">The barcode value.</param>
/// <returns>A <see cref="System.Drawing.Bitmap"/> object.</returns>
public static System.Drawing.Bitmap GetMicroQRBarcodeAsBitmap(string value)
{
    // create the barcode writer
    using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
    {
        // set barcode writer settings
        barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.MicroQR;
        barcodeWriter.Settings.Value = value;

        // get a barcode image as System.Drawing.Bitmap
        return Vintasoft.Barcode.GdiExtensions.GetBarcodeAsBitmap(barcodeWriter);
    }
}


Hier ist ein C#-Code, der zeigt, wie man ein Vektorbild (SVG) eines QR-Code-Barcodes generiert:
/// <summary>
/// Returns the QR Code barcode in vector form as a SVG string.
/// </summary>
/// <param name="barcodeValue">Barcode value.</param>
public static void GetQrCodeBarcodeAsSvgString(string barcodeValue)
{
    // create the barcode writer
    using (Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter())
    {
        // set barcode writer settings
        barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.QR;
        barcodeWriter.Settings.Value = barcodeValue;

        // generate QR Code barcode as a SVG string
        return barcodeWriter.GetBarcodeAsSvgFile();
    }
}