Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
En el mundo digital actual, el código QR (Código de respuesta rápida) se ha convertido en omnipresente, conectando a la perfección los reinos físico y digital. Desde el marketing a la logística, pasando por las finanzas o la sanidad, los códigos QR desempeñan un papel fundamental a la hora de facilitar un intercambio de datos eficaz.
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 del mercado, permite a los desarrolladores aprovechar la potencia del reconocimiento de códigos QR, descodificar datos sin esfuerzo e innovar en diversos ámbitos.
IronQR de Iron Software destaca como una robusta librería .NET lectora de códigos QR. El avanzado modelo de aprendizaje automático implementado por IronQR permite a sus aplicaciones descodificar códigos QR con una precisión y eficacia inigualables, incluso en escenarios difíciles.
Lea códigos QR con IronQR.
IronQR destaca como la principal biblioteca de lector de códigos QR de C# diseñada tanto para escanear códigos QR como para generar imágenes de códigos QR dentro del marco .NET. Mediante la utilización de tecnología ML de vanguardia, IronQR ha elevado la lectura de códigos QR a niveles sin precedentes.
Tanto si escanea códigos QR de imágenes, vídeos o imágenes de cámaras en directo, la solución basada en ML garantiza una recuperación de la información rápida y fiable.
Este enfoque innovador no sólo agiliza la extracción de datos, sino que también mejora la seguridad al discernir entre los códigos QR auténticos y las amenazas potenciales. Gracias a su intuitiva API, los desarrolladores pueden integrar perfectamente las funciones de código QR en sus proyectos .NET en cuestión de minutos.
IronQR se integra a la perfección con .NET Core (8, 7, 6, 5 y 3.1+.)Estándar .NET (2.0+)y .NET Framework (4.6.2+). La versión actual de .NET Core amplía su compatibilidad con sistemas operativos cliente como Linux, Unix y macOS, junto con la compatibilidad para desarrollar en aplicaciones móviles.
Empecemos creando una aplicación .NET de formularios de Windows para leer códigos de barras QR a partir de secuencias de vídeo de cámara o archivos de imagen. Abra Visual Studio, seleccione Crear nuevo proyecto y, a continuación, seleccione la plantilla de aplicación .NET Windows Forms
Haga clic en Siguiente e introduzca el nombre del proyecto
Seleccione las versiones .NET deseadas y, a continuación, haga clic en el botón de creación
IronQR puede instalarse mediante NuGet o Visual Studio Package Manager
A continuación se muestra cómo puede hacerlo utilizando Visual Studio
Para escanear códigos QR desde dispositivos con cámara, necesitamos instalar la librería AForgeCore.Video.DirectShow, Esto se puede hacer usando el gestor de paquetes de Visual Studio como se muestra a continuación. Haga clic con el botón derecho del ratón en el explorador de soluciones y abra el Gestor de paquetes.
Esta biblioteca también puede instalarse mediante la función NuGet como se muestra a continuación. Haga clic en el botón de instalación para instalar la biblioteca
El siguiente paso es crear un componente PictureBox en el formulario, esto es necesario para escanear la imagen del código QR desde el dispositivo de cámara conectado a la máquina.
Esto puede hacerse arrastrando y soltando desde la caja de herramientas. Este PictureBox es necesario para leer los datos del código QR del dispositivo con cámara
A continuación, tenemos que arrastrar y soltar un cuadro de texto para mostrar los códigos QR leídos.
Añade el siguiente código para leer códigos QR y descodificarlos utilizando IronQR.
using AForge.Video.DirectShow;
using AForge.Video;
using System.Drawing;
using IronQr;
namespace ReadQR
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
this.FormClosing += Form1_FormClosing;
}
private VideoCaptureDevice videoSource;
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (videoSource != null && videoSource.IsRunning)
{
videoSource.SignalToStop();
videoSource.WaitForStop();
}
}
private void Form1_Load(object sender, EventArgs e)
{
FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
if (videoDevices.Count > 0)
{
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)
{
// Actualiza el cuadro de imagen con el nuevo fotograma de la cámara.
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
var image = (Bitmap)eventArgs.Frame.Clone();
// Cargar QrImageInput
QrImageInput imageInput = new QrImageInput(image);
// Objeto Lector QR
QrReader reader = new QrReader();
// Leer códigos QR
IEnumerable<QrResult> results = reader.Read(imageInput);
// mostrar resultados
MessageBox.Show(results.First().Value);
}
}
}
using AForge.Video.DirectShow;
using AForge.Video;
using System.Drawing;
using IronQr;
namespace ReadQR
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
this.FormClosing += Form1_FormClosing;
}
private VideoCaptureDevice videoSource;
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (videoSource != null && videoSource.IsRunning)
{
videoSource.SignalToStop();
videoSource.WaitForStop();
}
}
private void Form1_Load(object sender, EventArgs e)
{
FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
if (videoDevices.Count > 0)
{
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)
{
// Actualiza el cuadro de imagen con el nuevo fotograma de la cámara.
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
var image = (Bitmap)eventArgs.Frame.Clone();
// Cargar QrImageInput
QrImageInput imageInput = new QrImageInput(image);
// Objeto Lector QR
QrReader reader = new QrReader();
// Leer códigos QR
IEnumerable<QrResult> results = reader.Read(imageInput);
// mostrar resultados
MessageBox.Show(results.First().Value);
}
}
}
Imports AForge.Video.DirectShow
Imports AForge.Video
Imports System.Drawing
Imports IronQr
Namespace ReadQR
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
AddHandler Me.Load, AddressOf Form1_Load
AddHandler Me.FormClosing, AddressOf Form1_FormClosing
End Sub
Private videoSource As VideoCaptureDevice
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
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)
Dim videoDevices As New FilterInfoCollection(FilterCategory.VideoInputDevice)
If videoDevices.Count > 0 Then
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)
' Actualiza el cuadro de imagen con el nuevo fotograma de la cámara.
pictureBox1.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
Dim image = DirectCast(eventArgs.Frame.Clone(), Bitmap)
' Cargar QrImageInput
Dim imageInput As New QrImageInput(image)
' Objeto Lector QR
Dim reader As New QrReader()
' Leer códigos QR
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' mostrar resultados
MessageBox.Show(results.First().Value)
End Sub
End Class
End Namespace
El texto codificado en el código QR es: I Love IronQR
IronQR requiere una clave de licencia. Se puede obtener una clave de prueba en el sitio web aquí. Esta clave debe colocarse 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 enviar, la clave será enviada por correo electrónico.
En conclusión, los códigos QR han trascendido sus orígenes para convertirse en indispensables en nuestro ecosistema digital. Con IronQR Los desarrolladores de C# pueden aprovechar la potencia del reconocimiento de códigos QR, descodificar datos en varios tipos de códigos QR con facilidad e innovar en varios dominios.
A medida que los códigos QR sigan evolucionando e integrándose en las nuevas tecnologías, su importancia a la hora de facilitar el intercambio fluido de datos y mejorar la experiencia de los usuarios no hará sino crecer. Aproveche el potencial de los códigos QR con IronQR y embárquese en un viaje de innovación y eficacia en el desarrollo de C#.
9 productos API .NET para sus documentos de oficina