Lector de Código QR en C# (Tutorial Paso a Paso para Principiantes)
En el mundo digital de hoy, los códigos QR (Códigos de Respuesta Rápida) se han vuelto omnipresentes, conectando sin problemas los ámbitos físico y digital. Desde el marketing hasta la logística, las finanzas y la salud, los códigos QR juegan un papel fundamental en facilitar el intercambio eficiente de datos.
En este artículo, nos adentramos en el ámbito del desarrollo en C#, explorando cómo IronQR, una de las mejores bibliotecas de códigos QR en el mercado, permite a los desarrolladores aprovechar el poder del reconocimiento de códigos QR, decodificar datos sin esfuerzo e innovar en varios dominios.
IronQR de Iron Software se destaca como una robusta biblioteca lectora de códigos QR para .NET. El modelo avanzado de aprendizaje automático implementado por IronQR permite a sus aplicaciones decodificar códigos QR con una precisión y eficiencia insuperables, incluso en escenarios desafiantes.
Cómo leer códigos QR usando C# con IronQR
- Crea un proyecto de Visual Studio con una plantilla de Aplicación de Windows Forms para .NET.
- Instala IronQR desde el gestor de paquetes NuGet.
- Obtenga el código QR de la cámara como una imagen usando la biblioteca AForge.
- Lea Códigos QR usando IronQR.
IronQR se destaca como la biblioteca lectora de códigos QR en C# diseñada para escanear y generar imágenes de códigos QR dentro del marco .NET. A través de la utilización de tecnología de aprendizaje automático de vanguardia, IronQR ha llevado la lectura de códigos QR a niveles sin precedentes.
Ya sea que esté escaneando códigos QR de imágenes, videos o flujos de cámara en vivo, la solución potenciada por ML garantiza una recuperación de información rápida y confiable.
Este enfoque innovador no solo agiliza la extracción de datos, sino que también mejora la seguridad al discernir entre códigos QR auténticos y posibles amenazas. Con su API intuitiva, los desarrolladores pueden integrar sin problemas las capacidades de códigos QR en sus proyectos .NET en cuestión de minutos.
IronQR se integra sin fisuras con .NET Core (8, 7, 6, 5 y 3.1+), .NET Standard (2.0+) y .NET Framework (4.6.2+). La versión actual de .NET Core extiende su soporte a sistemas operativos clientes como Linux, Unix y macOS, junto con la compatibilidad para desarrollar aplicaciones móviles.
Requisitos previos
- Visual Studio: Asegúrate de tener Visual Studio o cualquier otro entorno de desarrollo .NET instalado.
- Cámara Compatible: Asegúrate de que la cámara esté conectada a tu dispositivo.
- Gestor de Paquetes NuGet: Verifica que puedes utilizar NuGet para gestionar paquetes en tu proyecto.
Paso 1: Cree un proyecto de Visual Studio con una plantilla de aplicación de Windows Forms .NET
Comencemos creando una aplicación de Formularios de Windows .NET para leer códigos de barras QR de flujos de video de cámara o archivos de imagen. Abra Visual Studio, seleccione Crear Nuevo Proyecto y luego seleccione la plantilla de Aplicación de Formularios de Windows .NET.

Haga clic en Siguiente y escriba el nombre del proyecto.

Seleccione las versiones deseadas de .NET y luego haga clic en el botón Crear.

Paso 2: Instale IronQR desde el administrador de paquetes NuGet
IronQR se puede instalar utilizando el gestor de paquetes NuGet o el Gestor de Paquetes de Visual Studio.

A continuación se muestra cómo puede hacerlo usando Visual Studio.

Paso 3: Obtenga el código QR de la cámara como imagen usando la biblioteca AForge
Para escanear códigos QR desde dispositivos de cámara, necesitamos instalar la biblioteca AForge.Video.DirectShow. Esto se puede hacer usando el administrador de paquetes de Visual Studio. Haga clic derecho en el Explorador de Soluciones y abra el Administrador de Paquetes.

Esta biblioteca también se puede instalar utilizando la consola de paquetes NuGet como se muestra a continuación. Haga clic en el botón Instalar para instalar la biblioteca.

Paso 4: Leer códigos QR con IronQR
El siguiente paso es crear un componente PictureBox en el Formulario, que es necesario para escanear la imagen del código QR desde el dispositivo de cámara conectado a la máquina.
Esto se puede hacer arrastrando y soltando desde el cuadro de herramientas. Este PictureBox es necesario para leer los datos del código QR desde el dispositivo de cámara.

Luego, arrastre y suelte un cuadro de texto para mostrar los códigos QR leídos.

Agregue el siguiente código para leer códigos QR y decodificarlos utilizando IronQR.
using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;
namespace ReadQR
{
public partial class Form1 : Form
{
// Declare a video capture device
private VideoCaptureDevice videoSource;
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
this.FormClosing += Form1_FormClosing;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// Stop the video source when the form is closing
if (videoSource != null && videoSource.IsRunning)
{
videoSource.SignalToStop();
videoSource.WaitForStop();
}
}
private void Form1_Load(object sender, EventArgs e)
{
// Retrieve video input devices connected to the machine
FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
if (videoDevices.Count > 0)
{
// Use the first available video device
videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
videoSource.NewFrame += VideoSource_NewFrame;
videoSource.Start();
}
else
{
MessageBox.Show("No video devices found.");
Close();
}
}
private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
// Update the PictureBox with the new frame from the camera
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
var image = (Bitmap)eventArgs.Frame.Clone();
// Set the license key for IronQR. Replace "YourKey" with your actual key
License.LicenseKey = "YourKey";
// Prepare the image for QR code reading
QrImageInput imageInput = new QrImageInput(image);
// Create a QR reader object
QrReader reader = new QrReader();
// Read QR codes from the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Display the first QR code result in a MessageBox
if (results.Any())
{
MessageBox.Show(results.First().Value);
}
}
}
}using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;
namespace ReadQR
{
public partial class Form1 : Form
{
// Declare a video capture device
private VideoCaptureDevice videoSource;
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
this.FormClosing += Form1_FormClosing;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// Stop the video source when the form is closing
if (videoSource != null && videoSource.IsRunning)
{
videoSource.SignalToStop();
videoSource.WaitForStop();
}
}
private void Form1_Load(object sender, EventArgs e)
{
// Retrieve video input devices connected to the machine
FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
if (videoDevices.Count > 0)
{
// Use the first available video device
videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
videoSource.NewFrame += VideoSource_NewFrame;
videoSource.Start();
}
else
{
MessageBox.Show("No video devices found.");
Close();
}
}
private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
// Update the PictureBox with the new frame from the camera
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
var image = (Bitmap)eventArgs.Frame.Clone();
// Set the license key for IronQR. Replace "YourKey" with your actual key
License.LicenseKey = "YourKey";
// Prepare the image for QR code reading
QrImageInput imageInput = new QrImageInput(image);
// Create a QR reader object
QrReader reader = new QrReader();
// Read QR codes from the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Display the first QR code result in a MessageBox
if (results.Any())
{
MessageBox.Show(results.First().Value);
}
}
}
}Imports AForge.Video.DirectShow
Imports AForge.Video
Imports System
Imports System.Collections.Generic
Imports System.Drawing
Imports System.Linq
Imports System.Windows.Forms
Imports IronQR
Namespace ReadQR
Partial Public Class Form1
Inherits Form
' Declare a video capture device
Private videoSource As VideoCaptureDevice
Public Sub New()
InitializeComponent()
AddHandler Me.Load, AddressOf Form1_Load
AddHandler Me.FormClosing, AddressOf Form1_FormClosing
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
' Stop the video source when the form is closing
If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
videoSource.SignalToStop()
videoSource.WaitForStop()
End If
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
' Retrieve video input devices connected to the machine
Dim videoDevices As New FilterInfoCollection(FilterCategory.VideoInputDevice)
If videoDevices.Count > 0 Then
' Use the first available video device
videoSource = New VideoCaptureDevice(videoDevices(0).MonikerString)
AddHandler videoSource.NewFrame, AddressOf VideoSource_NewFrame
videoSource.Start()
Else
MessageBox.Show("No video devices found.")
Close()
End If
End Sub
Private Sub VideoSource_NewFrame(ByVal sender As Object, ByVal eventArgs As NewFrameEventArgs)
' Update the PictureBox with the new frame from the camera
pictureBox1.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
Dim image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
' Set the license key for IronQR. Replace "YourKey" with your actual key
License.LicenseKey = "YourKey"
' Prepare the image for QR code reading
Dim imageInput As New QrImageInput(image)
' Create a QR reader object
Dim reader As New QrReader()
' Read QR codes from the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' Display the first QR code result in a MessageBox
If results.Any() Then
MessageBox.Show(results.First().Value)
End If
End Sub
End Class
End NamespaceArchivo de imagen de entrada
El texto codificado en el código QR es: I Love IronQR

Resultado

Explicación del código de ejemplo
- Hemos registrado dos eventos en Windows Forms:
Form1_LoadyForm1_FormClosing. - También hemos registrado
VideoSource_NewFramea una instancia devideoSourcede la biblioteca AForge.Video.DirectShow. - Leemos los códigos QR desde el flujo de video en vivo.
- Cuando se detecta un código QR, mostramos un MessageBox con el texto decodificado.
Licencia (Prueba gratuita disponible)
IronQR requiere una clave de licencia. Se puede obtener una clave de prueba del sitio web aquí. Esta clave necesita ser ubicada en appsettings.json.
{
"IronQR.LicenseKey": "MYLICENSE.KEY.TRIAL"
}Proporcione el ID de correo electrónico para obtener una licencia de prueba, y después de enviarlo, la clave se entregará por correo electrónico.

Conclusión
En conclusión, los códigos QR han trascendido sus orígenes para volverse indispensables en nuestro ecosistema digital. Con IronQR, los desarrolladores de C# pueden aprovechar el poder del reconocimiento de códigos QR, decodificar datos en varios tipos de códigos QR con facilidad e innovar en diversos dominios.
Conforme los códigos QR continúan evolucionando e integrándose en nuevas tecnologías, su importancia para facilitar el intercambio de datos sin interrupciones y mejorar las experiencias de los usuarios solo crecerá. Abracen el potencial de los códigos QR con IronQR y embarquen en un viaje de innovación y eficiencia en el desarrollo de C#.
Preguntas Frecuentes
¿Cómo puedo configurar un proyecto en C# para leer códigos QR?
Para configurar un proyecto en C# para leer códigos QR, comienza creando una nueva aplicación de formularios de Windows en Visual Studio. Instala la biblioteca IronQR desde el Administrador de Paquetes NuGet y asegúrate de tener la biblioteca AForge.Video.DirectShow para capturar transmisiones de video desde una cámara.
¿Cuáles son los beneficios de usar IronQR para la lectura de códigos QR?
IronQR proporciona capacidades robustas para la lectura de códigos QR aprovechando modelos avanzados de aprendizaje automático. Asegura una decodificación precisa incluso en condiciones desafiantes y es compatible con varios marcos .NET y sistemas operativos.
¿Cómo decodifico un código QR usando IronQR en una aplicación C#?
Para decodificar un código QR en una aplicación C# con IronQR, captura una imagen desde la transmisión de la cámara usando AForge, luego utiliza la biblioteca IronQR para procesar y decodificar el código QR desde la imagen capturada.
¿Puede IronQR decodificar códigos QR de transmisiones de video en vivo?
Sí, IronQR puede decodificar códigos QR de transmisiones de video en vivo integrándose con la biblioteca AForge.Video.DirectShow para capturar cuadros y procesarlos en tiempo real.
¿Qué bibliotecas son esenciales para construir un lector de códigos QR en C#?
Las bibliotecas esenciales para construir un lector de códigos QR en C# incluyen IronQR para decodificar los códigos QR y AForge.Video.DirectShow para capturar transmisiones de video desde la cámara.
¿Cómo asegura IronQR la integridad de los datos durante la decodificación de códigos QR?
IronQR mejora la seguridad y asegura la integridad de los datos al distinguir con precisión entre códigos QR auténticos y potenciales amenazas, manteniendo así la fiabilidad de la información decodificada.
¿Es posible escanear códigos QR desde imágenes usando IronQR?
Sí, IronQR puede escanear códigos QR no solo desde transmisiones en vivo sino también desde imágenes estáticas, proporcionando flexibilidad para diversas necesidades de aplicación.
¿Cómo obtengo una licencia de prueba para IronQR?
Puede obtener una licencia de prueba para IronQR desde el sitio web de Iron Software, lo que le permite probar las características de la biblioteca colocando la clave de prueba en el archivo appsettings.json de su aplicación.
¿Qué papel juega el componente PictureBox en una aplicación de lector de códigos QR?
En una aplicación de lector de códigos QR, el componente PictureBox muestra la transmisión de video en vivo desde la cámara, permitiendo a IronQR capturar y decodificar códigos QR desde los cuadros entrantes.
¿Cómo puedo solucionar problemas con la decodificación de códigos QR en C#?
Si encuentra problemas con la decodificación de códigos QR, asegúrese de que las bibliotecas IronQR y AForge estén correctamente instaladas, verifique que la transmisión de la cámara esté correctamente integrada y asegúrese de que su aplicación esté capturando y procesando correctamente los cuadros de video.






