VintaSoft Barcode .NET SDK es el SDK multiplataforma profesional para Windows, Linux, macOS, 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:
- Alfanumérico (hasta 4296 símbolos)
- Byte (hasta 2953 bytes)
- Numérico (hasta 7089 dígitos)
- Kanji (hasta 1817 símbolos)
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.
Estructura de la matriz del código de barras
Las matrices de códigos de barras QR y Micro QR tienen la siguiente estructura:
- Zona silenciosa
- Patrones de búsqueda
- Información sobre el formato
- Patrones de tiempo
- Patrones de alineación
- Capa de corrección de datos y errores
¿Qué es un 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:
- Alfanumérico (hasta 21 símbolos)
- Byte (hasta 15 bytes)
- Numérico (hasta 35 dígitos)
- Kanji (hasta 9 símbolos)
¿Qué es un código de barras "GS1 QR"?
El código de barras "GS1 QR" es un código de barras QR que almacena valores en formato de datos del sistema GS1.
VintaSoft Barcode .NET SDK puede generar y reconocer códigos de barras "GS1 QR".
Aquí se muestra una imagen del código de barras "GS1 QR":
¿Qué es el código de barras "GS1 Digital Link QR"?
El código de barras "GS1 Digital Link QR" es un código de barras QR que almacena valores en formato GS1 Digital Link.
VintaSoft Barcode .NET SDK puede generar y reconocer códigos de barras "GS1 Digital Link QR".
Aquí se muestra la imagen del código de barras "GS1 Digital Link QR":
¿Qué es el código de barras "XFA Compressed QR"?
El código de barras "XFA Compressed QR" es un código de barras QR que almacena datos comprimidos según la especificación Adobe XFA.
VintaSoft Barcode .NET SDK puede generar y reconocer códigos de barras "XFA Compressed QR".
Aquí se muestra la imagen del código de barras "XFA Compressed QR":
¿Qué es el código de barras "Swiss QR Code"?
El código de barras "Swiss QR Code" es un subconjunto del código de barras QR que se utiliza para facturas en Suiza y Liechtenstein desde el 1 de octubre de 2022.
VintaSoft Barcode .NET SDK puede generar y reconocer códigos de barras "Swiss QR Code".
Aquí se muestra una imagen del código de barras "Swiss QR Code":
¿Qué es el código de barras "HIBC LIC QR Code"?
El código de barras "HIBC LIC QR Code" es un subconjunto del código de barras QR que se utiliza para el cumplimiento de la UDI de dispositivos médicos, identificando fabricantes, productos y lotes. VintaSoft Barcode .NET SDK puede generar y reconocer códigos de barras "HIBC LIC QR Code".
Aquí se muestra la imagen del código de barras "HIBC LIC QR Code":
Símbolo especial "Anexo de estructura"
El código de barras QR admite un símbolo especial llamado
"Anexo de estructura", que permite dividir los datos en varios códigos de barras QR. El símbolo está codificado en el código de barras y permite determinar claramente el número de partes del código y su orden. Esta función puede utilizarse 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:
- matriz dañada
- contraste bajo
- modulación baja
- iluminación desigual
- compresión en un lado
- distorsiones espaciales
- código de barras impreso en una superficie distorsionada
- gran cantidad de códigos de barras en una imagen
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();
}
}