Saltar al pie de página
USANDO IRONQR
Cómo leer un código QR usando IronQR

Lector de códigos QR en C# (Tutorial paso a paso)

La generación bajo demanda de nuevos y variados códigos de barras es un aspecto crucial de muchas aplicaciones comerciales .NET. La biblioteca IronBarcode permite hacer esto de manera muy rápida, conveniente y fácil en comparación con otras opciones de terceros. Este tutorial tiene como objetivo ilustrar cómo es así.

1. Creación de un nuevo proyecto

Abre Visual Studio y ve al menú Archivo. Seleccione Nuevo Proyecto, y luego seleccione Aplicación de Consola/Formularios de Windows/Aplicación WPF. Los códigos de barras también pueden ser utilizados en todo tipo de aplicaciones. Además, puede usarlos con aplicaciones como Webform/MVC/MVC Core.

Lector de códigos QR en C# (Tutorial paso a paso), Figura 1: Configure su nuevo proyecto Configurar tu nuevo proyecto

Ingrese el nombre del proyecto y seleccione la ruta del archivo en el cuadro de texto apropiado en Visual Studio. A continuación, haga clic en el botón Crear, y también seleccione el .NET Framework requerido. El proyecto ahora generará la estructura para la aplicación seleccionada. Si ha seleccionado la Aplicación de Consola, ahora se abrirá el archivo program.cs donde puede ingresar el código y construir/ejecutar la aplicación.

2. Instale el paquete NuGet IronBarcode

Ahora vaya al Explorador de soluciones en Visual Studio y haga clic izquierdo en el proyecto. En el menú emergente, seleccione el Administrador de paquetes NuGet del menú y busque "Barcode" como palabra clave. Seleccione el primer resultado en el cuadro de diálogo del paquete NuGet y haga clic en la opción de instalar.

Lector de códigos QR en C# (Tutorial paso a paso), Figura 2: Instalar la biblioteca IronBarcode desde el Administrador de paquetes NuGet Instalar biblioteca IronBarcode desde el Administrador de paquetes NuGet

Alternativamente, en Visual Studio siga estas instrucciones: Vaya a Herramientas > Administrador de paquetes NuGet > Consola del administrador de paquetes

Abra la pestaña Consola del administrador de paquetes. Escribe la línea siguiente:

Install-Package IronQR

Lector de códigos QR en C# (Tutorial paso a paso), Figura 3: Consola del administrador de paquetes NuGet Consola del administrador de paquetes NuGet

Vaya al siguiente enlace para obtener más información sobre la última versión del SDK del lector de códigos de barras.

https://www.nuget.org/packages/Barcode

A continuación, el paquete descargará todos los archivos DLL y también agregará la referencia del archivo DLL en el proyecto actual como referencia del proyecto .NET.

El proyecto de Visual Studio ahora está listo para usar con el código.

3. Agregar referencia

Agregue la referencia IronBarCode al código como se muestra a continuación, permitiendo el uso de las funciones disponibles en la biblioteca IronBarcode en .NET Core. Para obtener más información sobre el control lector de códigos de barras, lectura de códigos QR, componentes, soporte para tipos de códigos QR y la compatibilidad del SDK lector de códigos de barras, consulte este enlace: https://ironsoftware.com/csharp/barcode/

using IronBarCode;
using IronBarCode;
Imports IronBarCode
$vbLabelText   $csharpLabel

4. Creación de una instancia de código de barras

BarcodeReader es la clase estática que se utiliza para leer/crear códigos QR. Se puede utilizar sin crear ninguna instancia de objeto para la clase estática BarcodeReader. El control lector de códigos de barras ofrece la capacidad de escanear 15 tipos de códigos de barras utilizando una única función Read o ReadAsync. La biblioteca IronBarcode permite la lectura de códigos QR/códigos de barras de varias fuentes:

  • Cadena
  • Stream
  • Imagen
  • Bitmap

5. Leer el código de barras usando String

Los códigos QR y las imágenes de códigos de barras se leen fácilmente con la biblioteca .NET. El método Read es una función estática que escaneará las imágenes de códigos QR y decodificará los códigos QR y códigos de barras en texto. Acepta varios tipos de archivos de imagen como bitmap, archivos PNG, JPEG, TIFF, etc.

Esta función Read extrae los datos de códigos QR/códigos de barras de la imagen y recupera el resultado como el objeto BarcodeResult. Si el archivo de imagen no es reconocido por el código, devolverá nulo.

El BarcodeResult tiene los siguientes valores:

  • BarcodeType
  • Valor
  • Texto
  • Valor binario

BarcodeType es un tipo de datos enum y devuelve el tipo de código de barras de la imagen de entrada proporcionada. IronBarcode admite veintidós tipos de códigos de barras. Devolverá el tipo de código de barras que se aplica a la imagen de entrada proporcionada.

Valor y texto también son valores de tipo objeto disponibles en BarcodeResult. Tanto el valor como el texto son tipos de datos de cadena. Eso devuelve el valor de cadena del código de barras. El método Read leerá códigos QR y códigos de barras y obtendrá el valor de cadena de la imagen de código de barras proporcionada en valor/texto. El valor binario es el tipo de datos byte y devuelve el byte de la imagen proporcionada. A continuación se muestra el código de respuesta rápida que se puede usar en cualquier Aplicación .NET Windows Forms o Aplicaciones Estándares .NET.

// Read a barcode from an image file
BarcodeResult result = BarcodeReader.Read("test.bmp");
// Check if the result is not null and matches the expected text
if (result != null && result.Text == "https://ironsoftware.com/csharp/barcode")
{
    System.Console.WriteLine("Success");
}
// Read a barcode from an image file
BarcodeResult result = BarcodeReader.Read("test.bmp");
// Check if the result is not null and matches the expected text
if (result != null && result.Text == "https://ironsoftware.com/csharp/barcode")
{
    System.Console.WriteLine("Success");
}
' Read a barcode from an image file
Dim result As BarcodeResult = BarcodeReader.Read("test.bmp")
' Check if the result is not null and matches the expected text
If result IsNot Nothing AndAlso result.Text = "https://ironsoftware.com/csharp/barcode" Then
	System.Console.WriteLine("Success")
End If
$vbLabelText   $csharpLabel

El código anterior demuestra cómo leer códigos QR y códigos de barras usando la biblioteca de lector de códigos de barras .NET. El código es sencillo de usar, mapeando un archivo desde el sistema a un objeto Bitmap. También decodifica el código QR/código de barras de la imagen y muestra el resultado en el objeto. A continuación se muestran los códigos QR/códigos de barras en el código para escanear los datos.

Lector de códigos QR en C# (Tutorial paso a paso), Figura 4: La entrada del código de barras La entrada del código de barras

6. Leer varios códigos de barras desde una imagen TIFF

El control lector de códigos de barras .NET permite la lectura de múltiples códigos QR/códigos de barras de un archivo de imagen utilizando el mismo método Read, que es muy fácil de usar.

A continuación se muestra el código de muestra para leer múltiples códigos QR de la imagen:

// Configure barcode reader options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    ExpectMultipleBarcodes = true,
};

// Read multiple barcodes from a TIFF image
BarcodeResult[] multiFrameResults = BarcodeReader.Read("Multiframe.tiff", options);
// Configure barcode reader options
BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    ExpectBarcodeTypes = BarcodeEncoding.Code128,
    ExpectMultipleBarcodes = true,
};

// Read multiple barcodes from a TIFF image
BarcodeResult[] multiFrameResults = BarcodeReader.Read("Multiframe.tiff", options);
' Configure barcode reader options
Dim options As New BarcodeReaderOptions() With {
	.ExpectBarcodeTypes = BarcodeEncoding.Code128,
	.ExpectMultipleBarcodes = True
}

' Read multiple barcodes from a TIFF image
Dim multiFrameResults() As BarcodeResult = BarcodeReader.Read("Multiframe.tiff", options)
$vbLabelText   $csharpLabel

En el código anterior, se extraen los códigos QR de las imágenes TIFF de códigos QR. El lector de códigos de barras .NET escanea códigos QR de la imagen del sistema y devuelve el resultado como un arreglo. En el código anterior, el código de barras para Code128 es el único tipo escaneado. Si hay otros códigos de barras presentes en la imagen, serán ignorados.

7. Lectura de códigos QR y códigos de barras desde PDF

Esta sección demuestra cómo leer el código QR de documentos PDF. La biblioteca de código QR escaneará todas las páginas y archivos disponibles para todos los códigos QR disponibles, o se centrará en un tipo específico de código de barras. Al usar IronBarcode, la biblioteca proporciona todos los DLL relevantes necesarios para un lector de códigos de barras estándar, por lo que no hay necesidad de incluir ningún otro DLL como referencia de proyecto .NET.

A continuación se muestra el código de muestra que se puede usar para leer códigos QR/códigos de barras de PDF.

// Read barcodes from each page of a PDF document
PagedBarcodeResult[] pagedResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Process results for each page
foreach (PagedBarcodeResult pageRes in pagedResults)
{
    int pageNumber = pageRes.PageNumber;
    string value = pageRes.Value;
    Bitmap img = pageRes.BarcodeImage;
    BarcodeEncoding barcodeType = pageRes.BarcodeType;
    byte[] binary = pageRes.BinaryValue;
    Console.WriteLine(pageRes.Value);
}
// Read barcodes from each page of a PDF document
PagedBarcodeResult[] pagedResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");
// Process results for each page
foreach (PagedBarcodeResult pageRes in pagedResults)
{
    int pageNumber = pageRes.PageNumber;
    string value = pageRes.Value;
    Bitmap img = pageRes.BarcodeImage;
    BarcodeEncoding barcodeType = pageRes.BarcodeType;
    byte[] binary = pageRes.BinaryValue;
    Console.WriteLine(pageRes.Value);
}
' Read barcodes from each page of a PDF document
Dim pagedResults() As PagedBarcodeResult = BarcodeReader.ReadPdf("MultipleBarcodes.pdf")
' Process results for each page
For Each pageRes As PagedBarcodeResult In pagedResults
	Dim pageNumber As Integer = pageRes.PageNumber
	Dim value As String = pageRes.Value
	Dim img As Bitmap = pageRes.BarcodeImage
	Dim barcodeType As BarcodeEncoding = pageRes.BarcodeType
	Dim binary() As Byte = pageRes.BinaryValue
	Console.WriteLine(pageRes.Value)
Next pageRes
$vbLabelText   $csharpLabel

Lo anterior es el código de muestra para leer códigos QR/códigos de barras de un archivo PDF desde un método ReadPdf simple. También puede proporcionar resultados detallados para cada código de barras y su tipo.

Conclusión

Los lectores de códigos de barras .NET proporcionan una forma simple y fácil de leer códigos QR o decodificar/crear códigos QR y códigos de barras con pasos simples. El DLL de IronBarcode se puede usar en varios entornos como aplicaciones .NET Windows Forms, aplicaciones móviles, aplicaciones web, MAUI y Blazor usando .NET Framework o .NET Standard. Actualmente, si compras el Iron Suite completo, puedes obtener cinco bibliotecas por el precio de solo dos. IronBarcode ofrece una clave de prueba gratuita, o actualmente puede comprar cinco productos de Iron Software por el precio de solo dos.

Visite la página de licencias para más información.

También puede descargar un proyecto de archivo zip.

Preguntas Frecuentes

¿Cómo puedo leer códigos QR en C#?

Puedes leer códigos QR en C# usando la biblioteca IronQR instalando el Paquete NuGet IronBarcode en Visual Studio, agregando las referencias necesarias y utilizando la clase BarcodeReader.

¿Cuáles son los pasos para comenzar un proyecto de lectura de códigos QR en Visual Studio?

Para comenzar un proyecto de lectura de códigos QR en Visual Studio, crea un nuevo proyecto, instala el paquete NuGet IronBarcode, agrega las referencias requeridas y usa la clase BarcodeReader para leer códigos QR de varias fuentes.

¿Puedo leer múltiples códigos QR de una sola imagen en C#?

Sí, la biblioteca IronQR te permite leer múltiples códigos QR de una sola imagen usando el método Read con opciones configuradas para múltiples códigos.

¿Cómo puedo extraer códigos QR de un documento PDF en C#?

Puedes usar el método ReadPdf en la biblioteca IronQR para escanear un documento PDF en busca de códigos QR y obtener resultados detallados de cada página.

¿Qué opciones de personalización están disponibles para la lectura de códigos QR en C#?

IronQR ofrece opciones de personalización como establecer regiones de recorte, habilitar el uso de múltiples hilos y ajustar la precisión del modelo de aprendizaje automático para mejorar el rendimiento de la lectura de códigos QR.

¿Es IronQR adecuado para aplicaciones comerciales?

Sí, IronQR está diseñado para aplicaciones comerciales .NET, proporcionando capacidades confiables y eficientes de lectura de códigos QR.

¿Qué entornos admiten la lectura de códigos QR con IronQR?

IronQR admite varios entornos .NET, incluidas aplicaciones Windows Forms, aplicaciones móviles, aplicaciones web, MAUI y Blazor usando .NET Framework o .NET Standard.

¿Dónde puedo encontrar información sobre la licencia para usar IronQR?

Para obtener información sobre la licencia para usar IronQR, visita la sección de licencias en el sitio web de Iron Software.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más