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ómoIronQRuna 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 deIron 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.
CreeVisual Studio proyecto con plantilla de aplicación .NET Windows forms
Obtener el código QR de la cámara como una imagen de la Biblioteca AForge
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 .NET Framework. 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+.).NET Standard(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.
Visual Studio: Asegúrese de tener instalado Visual Studio o cualquier otro entorno de desarrollo .NET.
Cámara compatible: Asegúrese de que la cámara está conectada a su dispositivo.
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 medianteNuGet 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ónNuGet 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 utilizandoIronQR.
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)
{
// Update the picture box with the new frame from the camera.
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
var image = (Bitmap)eventArgs.Frame.Clone();
// Set the license key
License.LicenseKey = "YourKey";
// Load QrImageInput
QrImageInput imageInput = new QrImageInput(image);
// QR Reader object
QrReader reader = new QrReader();
// Read QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
// display results
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)
{
// Update the picture box with the new frame from the camera.
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
var image = (Bitmap)eventArgs.Frame.Clone();
// Set the license key
License.LicenseKey = "YourKey";
// Load QrImageInput
QrImageInput imageInput = new QrImageInput(image);
// QR Reader object
QrReader reader = new QrReader();
// Read QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
// display results
MessageBox.Show(results.First().Value);
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
El texto codificado en el código QR es: I Love IronQR
Hemos registrado 2 eventos en formularios Windows Form1_Load, Form1_FormClosing
También registramos VideoSource_NewFrame a una instancia de videoSource de la librería AForgeCore.Video.DirectShow
A continuación, leemos los códigos QR del flujo de vídeo en directo
IronQR requiere una clave de licencia. Se puede obtener una clave de prueba en el sitio webaquí. 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. ConIronQRLos 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 conIronQR 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