Reconnaître et générer des codes QR à l'aide du VintaSoft Barcode .NET SDK

Catégorie du blog: Code-barres.NET

24.06.2025

VintaSoft Barcode .NET SDK est un SDK professionnel multiplateforme pour Windows, Linux et macOS qui permet de reconnaître et de générer des codes QR dans les applications .NET, WPF, Web et MAUI. Quelques lignes de code suffisent pour intégrer cette fonctionnalité à votre application .NET.

Qu'est-ce qu'un code QR?

Un code QR est un code-barres matriciel bidimensionnel, le plus répandu au monde. Son nom reflète le principe de son développement: "Réponse rapide", permettant une reconnaissance rapide quel que soit l'angle d'inclinaison. Une caractéristique distinctive du code QR est la présence de motifs de recherche clairement identifiables: des carrés noirs aux coins du code-barres.


Caractéristiques du code QR

Tous les fabricants modernes utilisent des codes QR, décrits dans la norme ISO/IEC 18004. La norme AIM ITS/97-001 décrit le modèle 1 de code QR, une version obsolète dont l'utilisation est déconseillée.

Le code QR peut stocker des données mixtes de différents types selon quatre modes d'encodage:

Le code QR utilise l'algorithme de correction d'erreurs Reed-Solomon, qui permet la reconnaissance des codes-barres endommagés. Lors de la création d'un code-barres, l'un des quatre niveaux de correction d'erreurs est sélectionné en fonction des conditions d'utilisation prévues: plus le niveau de correction est élevé, moins le code-barres peut contenir de données.


Structure de la matrice de code-barres

Les matrices de codes-barres QR et Micro QR ont la structure suivante:



Qu'est-ce qu'un code-barres Micro QR?

Le code-barres Micro QR est une version compacte du code-barres QR. Il est généralement utilisé pour le marquage des petits colis:


Le code-barres Micro QR ne possède qu'un seul motif de recherche. La quantité de données dans ce code-barres est très limitée:


Qu'est-ce qu'un code-barres "GS1 QR"?

Le code-barres "GS1 QR" est un code-barres QR qui stocke une valeur au format des données du système GS1. VintaSoft Barcode .NET SDK peut générer et reconnaître les codes-barres "GS1 QR".
Voici une image du code-barres "GS1 QR":


Qu'est-ce qu'un code-barres "GS1 Digital Link QR"?

Le code-barres "GS1 Digital Link QR" est un code-barres QR qui stocke une valeur au format GS1 Digital Link. VintaSoft Barcode .NET SDK peut générer et reconnaître les codes-barres "GS1 Digital Link QR".
Voici une image du code-barres "GS1 Digital Link QR":


Qu'est-ce qu'un code-barres "XFA Compressed QR"?

Le code-barres "XFA Compressed QR" est un code-barres QR qui stocke des données compressées selon la spécification Adobe XFA. VintaSoft Barcode .NET SDK peut générer et reconnaître les codes-barres "XFA Compressed QR".
Voici une image du code-barres "XFA Compressed QR":


Qu'est-ce qu'un code-barres "Swiss QR Code"?

Le code-barres "Swiss QR Code" est un sous-ensemble de code-barres QR utilisé pour les factures en Suisse et au Liechtenstein depuis le 1er octobre 2022. VintaSoft Barcode .NET SDK peut générer et reconnaître les codes-barres "Swiss QR Code".
Voici une image du code-barres "Swiss QR Code":


Qu'est-ce que le code-barres "HIBC LIC QR Code"?

Le code-barres "HIBC LIC QR Code" est un sous-ensemble de code-barres QR utilisé pour la conformité UDI des dispositifs médicaux, permettant d'identifier les fabricants, les produits et les lots. VintaSoft Barcode .NET SDK peut générer et reconnaître les codes-barres "HIBC LIC QR Code".
Voici une image du code-barres "HIBC LIC QR Code":


Symbole spécial "Structure append"

Le code QR prend en charge un symbole spécial appelé "Structure append", qui permet de diviser des données en plusieurs codes QR. Ce symbole est encodé dans le code-barres et permet de déterminer clairement le nombre de segments et leur ordre. Cette fonctionnalité peut être utilisée pour couvrir une zone allongée ou pour insérer un grand nombre de données.


VintaSoft Barcode .NET SDK vous permet de diviser des données et de générer plusieurs codes QR liés par le symbole "Ajout de structure". Le SDK contient également un algorithme permettant de restaurer les données d'un ensemble de codes QR divisés à l'aide de ce symbole.


Quels codes QR le VintaSoft Barcode .NET SDK peut-il reconnaître?

VintaSoft Barcode .NET SDK reconnaît tous les types de codes QR et Micro QR. Des algorithmes uniques sont utilisés pour la reconnaissance, permettant une identification rapide des codes-barres présentant divers problèmes:


Voici un exemple de code C# illustrant la reconnaissance des codes QR dans une image capturée par un appareil photo:
/// <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();
            }
        }
    }
}


Quels codes QR le VintaSoft Barcode .NET SDK peut-il générer?

VintaSoft Barcode .NET SDK génère tous les types de codes-barres QR et Micro QR.

Voici un exemple de code C# qui montre comment générer une image raster d'un code-barres QR:
/// <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);
    }
}


Voici un exemple de code C# qui montre comment générer une image raster d'un code-barres Micro QR:
/// <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);
    }
}


Voici un code C# qui montre comment générer une image vectorielle (SVG) d'un code QR:
/// <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();
    }
}