Reconoce y genera códigos de barras QR con VintaSoft Barcode .NET SDK

Categoría del blog: Barcode.NET

24.06.2025

VintaSoft Barcode .NET SDK es el SDK multiplataforma profesional para Windows, Linux, macOS y Android, que permite reconocer y generar códigos de barras QR en .NET, WPF, Web, MAUI. Solo necesitas unas pocas líneas de código para agregar la capacidad de reconocer y generar códigos de barras QR a tu aplicación .NET.

¿Qué es un código de barras QR?

El código QR es un código de barras matricial bidimensional, que es el código de barras bidimensional más utilizado en el mundo. El nombre de este código de barras refleja la idea de su desarrollo: "Respuesta Rápida", reconocimiento rápido con cualquier ángulo de inclinación. Una característica distintiva del código QR son sus patrones de búsqueda claramente distinguibles: cuadrados negros en las esquinas:


Características del código QR

Todos los fabricantes modernos utilizan códigos QR, descritos en la norma ISO/IEC 18004. La norma AIM ITS/97-001 describe el Código QR Modelo 1, una versión obsoleta del código de barras, cuyo uso no se recomienda.

El código de barras QR puede almacenar datos mixtos de varios tipos en cuatro modos de codificación:

El código de barras QR utiliza el algoritmo de corrección de errores Reed-Solomon, que permite el reconocimiento de códigos de barras dañados. Al crear un código de barras, se selecciona uno de los 4 niveles de corrección de errores según las condiciones de uso esperadas: cuanto mayor sea el nivel de corrección de errores, menos datos se pueden colocar en el código de barras.


Código de barras Micro QR

El código de barras Micro QR es una versión compacta del código de barras QR. El código de barras Micro QR se utiliza habitualmente para marcar paquetes pequeños:


El código de barras Micro QR solo tiene un patrón de búsqueda. La cantidad de datos en este código de barras es muy limitada:


Estructura de la matriz del código de barras

Las matrices de códigos de barras QR y Micro QR tienen la siguiente estructura:



Símbolo especial "Anexo de estructura"

El código QR admite un símbolo especial llamado "Anexo de estructura", que permite dividir los datos en varios códigos QR. El símbolo está codificado en el código y permite determinar claramente el número de partes del código y su orden. Esta función se puede utilizar para marcar un área alargada o para colocar una gran cantidad de datos.


El VintaSoft Barcode .NET SDK permite dividir los datos y generar varios códigos QR vinculados mediante el símbolo "Anexo de estructura". El SDK también incluye un algoritmo para restaurar datos de un conjunto de códigos de barras QR divididos mediante el símbolo "Anexar estructura".


¿Qué códigos de barras QR reconoce VintaSoft Barcode .NET SDK?

VintaSoft Barcode .NET SDK reconoce todos los tipos de códigos de barras QR y Micro QR. Se utilizan algoritmos únicos para el reconocimiento, lo que permite reconocer rápidamente códigos de barras que tienen varios problemas:


Aquí hay un código C# que demuestra cómo reconocer códigos de barras QR Code en una imagen capturada desde una cámara:
/// <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();
            }
        }
    }
}


¿Qué códigos de barras QR Code puede generar VintaSoft Barcode .NET SDK?

VintaSoft Barcode .NET SDK genera todo tipo de códigos de barras QR y Micro QR.

Aquí hay un código C# que demuestra cómo generar una imagen rasterizada del código de barras 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);
    }
}


Aquí hay un código C# que demuestra cómo generar una imagen rasterizada del código de barras 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);
    }
}


Aquí hay un código C# que demuestra cómo generar una imagen vectorial (SVG) del código de barras 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();
    }
}