Riconosci e genera codici a barre QR Code utilizzando VintaSoft Barcode .NET SDK

Categoria del blog: Barcode.NET

24.06.2025

VintaSoft Barcode .NET SDK è l'SDK multipiattaforma professionale per Windows, Linux, macOS e Android, che consente di riconoscere e generare codici a barre QR Code in .NET, WPF, Web, MAUI. Bastano poche righe di codice per aggiungere la capacità di riconoscere e generare codici a barre QR Code alla tua applicazione .NET.

Cos'è un codice a barre QR Code?

Il codice QR è un codice a barre bidimensionale a matrice, il codice a barre bidimensionale più comunemente utilizzato al mondo. Il nome di questo codice a barre riflette l'idea alla base del suo sviluppo: "Quick Response", ovvero riconoscimento rapido con qualsiasi angolo di inclinazione. Una caratteristica distintiva del codice a barre QR Code sono i modelli di ricerca chiaramente distinguibili: quadrati neri agli angoli del codice a barre:


Caratteristiche del codice a barre QR Code

Tutti i produttori moderni utilizzano codici a barre QR Code, descritti nello standard ISO/IEC 18004. Lo standard AIM ITS/97-001 descrive il Codice QR Modello 1, una versione obsoleta del codice a barre, il cui utilizzo è sconsigliato.

Il codice a barre QR Code può memorizzare dati misti di vario tipo in quattro modalità di codifica:

Il codice a barre QR Code utilizza l'algoritmo di correzione degli errori Reed-Solomon, che consente il riconoscimento dei codici a barre danneggiati. Quando si crea un codice a barre, viene selezionato uno dei 4 livelli di correzione degli errori a seconda delle condizioni d'uso previste: più alto è il livello di correzione degli errori, minore è il numero di dati che possono essere inseriti nel codice a barre.


Codice a barre Micro QR

Il codice a barre Micro QR è una versione compatta del codice a barre QR Code. Il codice a barre Micro QR viene solitamente utilizzato per contrassegnare piccoli pacchi:


Il codice a barre Micro QR ha un solo schema di ricerca. La quantità di dati in questo codice a barre è molto limitata:


Struttura della matrice del codice a barre

Le matrici del codice a barre QR e Micro QR hanno la seguente struttura:



Simbolo speciale "Aggiunta struttura"

Il codice a barre QR supporta un simbolo speciale chiamata "Aggiunta struttura", che permette di suddividere i dati in più codici a barre QR Code. Il simbolo è codificato nel codice a barre e permette di determinare chiaramente il numero di parti del codice a barre e il loro ordine. Questa funzione può essere utilizzata per contrassegnare un'area allungata o per posizionare un ampio array di dati.


VintaSoft Barcode .NET SDK consente di suddividere i dati e generare diversi codici a barre QR Code collegati dal simbolo "Aggiunta struttura". L'SDK contiene anche un algoritmo per il ripristino dei dati da un set di codici a barre QR Code suddivisi utilizzando il simbolo "Aggiunta struttura".


Quali codici a barre QR Code riconosce VintaSoft Barcode .NET SDK?

VintaSoft Barcode .NET SDK riconosce tutti i tipi di codici a barre QR e Micro QR. Per il riconoscimento vengono utilizzati algoritmi esclusivi che consentono di riconoscere rapidamente i codici a barre che presentano vari problemi:


Ecco un codice C# che mostra come riconoscere i codici a barre QR in un'immagine acquisita da una fotocamera:
/// <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();
            }
        }
    }
}


Quali codici a barre QR può generare VintaSoft Barcode .NET SDK?

VintaSoft Barcode .NET SDK genera tutti i tipi di codici a barre QR e Micro QR.

Ecco un codice C# che mostra come generare un'immagine raster del codice a barre QR Code:
/// <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);
    }
}


Ecco un codice C# che mostra come generare un'immagine raster del codice a barre 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);
    }
}


Ecco un codice C# che mostra come generare un'immagine vettoriale (SVG) del codice a barre QR Code:
/// <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();
    }
}