USO DE IRONQR

Cómo escanear códigos QR en ASP .NET

Publicado en 6 de junio, 2024
Compartir:

Introducción

Los códigos QR se han convertido en omnipresentes en nuestro mundo digital, y se utilizan con frecuencia en publicidad, comercio minorista, gestión de eventos, etc. Para los desarrolladores que trabajan en el marco ASP.NET, la integración de funciones de escaneado de códigos QR en las aplicaciones web puede mejorar la experiencia de usuario y la funcionalidad. Este artículo explora el proceso de implementación de un escáner de códigos QR en una aplicación ASP.NET, cubriendo las herramientas necesarias, las bibliotecas y la implementación paso a paso. UtilizaremosIronQRuna potente biblioteca para la generación de códigos QR a partir deIron Software para leer códigos QR.

Cómo escanear códigos QR en ASP .NET

  1. Crear un proyecto ASP.NET con Visual Studio

  2. InstaleIronQR biblioteca del Gestor de paquetes

  3. Cargar la imagen QR y leer el QR.

  4. Leer código QR avanzado

Entender los códigos QR y sus casos de uso

QR(Respuesta rápida) son códigos de barras bidimensionales que pueden almacenar información que va desde URL a datos de contacto, y que suelen escanearse con teléfonos inteligentes o dispositivos de escaneado específicos. En las aplicaciones web, los códigos QR pueden servir para varios propósitos, como:

  • Acceso rápido a sitios web: Dirigir a los usuarios a una URL específica sin necesidad de teclear.
  • Venta de entradas para eventos: Verificación de códigos QR en entradas para el acceso a eventos.
  • Sistemas de pago: Facilitan el pago escaneando un código QR.
  • Información sobre productos: Proporcionar información adicional sobre los productos.

Presentación de IronQR

IronQR es una potente librería .NET diseñada para la generación y escaneo de códigos QR, que proporciona una robusta funcionalidad pensando en la facilidad de uso. Esta versátil biblioteca no sólo gestiona códigos QR, sino también otros tipos de códigos de barras, lo que la convierte en la opción preferida de los desarrolladores que trabajan en el ecosistema .NET. Aquí exploraremos cómo integrar la biblioteca IronQR en una aplicación ASP.NET para facilitar el escaneo de códigos QR.

Principales ventajas y características de IronQR

  1. Lectura de códigos QR:IronQR puede leer códigos QR de varios formatos de imagen, como jpg, png, svg, bmp, gif, tif, tiff, etc. También admite imágenes multipágina y modelos de detección de QR personalizados. Los formatos de datos de salida incluyen texto, URL, coordenadas, etc.

  2. Escribir códigos QR: Puedes generar códigos QR y guardarlos como imágenes(jpg, png, gif, tiff, bmp)o incluso estamparlos en PDF existentes. Codifique datos como texto, URL, bytes y números y genere códigos QR. Personalice el estilo del código QR cambiando el tamaño, ajustando los márgenes, cambiando el color y añadiendo logotipos.

  3. Tratamiento y corrección de errores:IronQR proporciona mensajes de error detallados y corrección de errores QR personalizada. Garantiza la tolerancia a fallos y admite la comprobación de nulos y sumas de comprobación.

  4. Modelo avanzado de aprendizaje automático:IronQR utiliza un modelo avanzado de aprendizaje automático para el reconocimiento de códigos QR. Este modelo garantiza una lectura precisa y fiable de los códigos QR en varias plataformas, incluidos los entornos móviles, de escritorio y en la nube.

  5. Compatibilidad multiplataforma:IronQR está diseñado para C#, F# y VB.NET, y se ejecuta en varias versiones de .NET como .NET Core(8, 7, 6, 5 y 3.1+.).NET Standard(2.0+).NET Framework(4.6.2+)

  6. Admite diferentes tipos de proyectos, incluidos los web(Blazor y WebForms), móvil(Xamarin y MAUI), escritorio(WPF Y MAUI)y aplicaciones de consola.

  7. Amplio soporte de códigos QR: IronQR sobresale en el manejo de una amplia gama de códigos QR y otros tipos de códigos de barras. Ya se trate de códigos QR estándar, códigos Micro QR, una imagen de código de barras QR o incluso formatos específicos como Aztec o Data Matrix,IronQR te tiene cubierto. IronQR también permite leer códigos de barras QR.

    IronQR de productos .NET API, que incluye diversas herramientas para documentos ofimáticos, edición de PDF, OCR, etc.

Paso 1: Crear un nuevo proyecto ASP.NET con Visual Studio

Comience creando un nuevo proyecto y seleccionando la plantilla MVC como se muestra a continuación

Cómo Escanear Código QR en ASP .NET: Figura 1 - Crear un nuevo proyecto ASP.NET con Visual Studio

A continuación, debe indicar el nombre y la ubicación del proyecto.

Cómo Escanear Código QR en ASP .NET: Figura 2 - Proporcione el nombre del proyecto y la ubicación que desea guardar.

Seleccione la versión .NET.

Cómo Escanear Código QR en ASP .NET: Figura 3 - Seleccione la versión .NET que desea utilizar.

Al hacer clic en el botón crear se creará el siguiente código y proyecto.

Cómo Escanear Código QR en ASP .NET: Figura 4 - Haga clic en el botón crear para que Visual Studio le proporcione la plantilla para su proyecto

Paso 2: Instalar la biblioteca IronQR desde el gestor de paquetes de Visual Studio

InstaleIronQR desde el gestor de paquetes de Visual Studio como se muestra a continuación

Cómo Escanear Código QR en ASP .NET: Figura 5 - Buscar IronQR usando el Visual Studio Package Manager e instalarlo

IronQR también puede instalarse medianteNuGet Gestor de paquetes.

Cómo Escanear Código QR en ASP .NET: Figura 6 - Búsqueda de IronQR a través del gestor de paquetes NuGet

Paso 3: Cargar la imagen QR y leer la imagen QR

Ahora, vamos a crear un código QR App.

Crear modelo `QrCode

using System.ComponentModel.DataAnnotations;
namespace IronQRScannerAsp.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Select QR Image")]
        public IFormFile QRCodeImage
        {
            get;
            set;
        }
    }
}
using System.ComponentModel.DataAnnotations;
namespace IronQRScannerAsp.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Select QR Image")]
        public IFormFile QRCodeImage
        {
            get;
            set;
        }
    }
}
Imports System.ComponentModel.DataAnnotations
Namespace IronQRScannerAsp.Models
	Public Class QRCodeModel
		<Display(Name := "Select QR Image")>
		Public Property QRCodeImage() As IFormFile
	End Class
End Namespace
VB   C#

Crear un controlador de código QR

Añada un nuevo controlador haciendo clic con el botón derecho del ratón en la carpeta del controlador y asignándole el nombre que se muestra a continuación:

Cómo Escanear Código QR en ASP .NET: Figura 7 - Añade un nuevo controlador haciendo clic en la carpeta y dale un nombre

Seleccione Controlador vacío.

Cómo Escanear Código QR en ASP .NET: Figura 8 - Haga clic en Empty Controller en el prompt

Indique el nombre del controlador.

Cómo Escanear Código QR en ASP .NET: Figura 9 - Nombre del controlador

Ahora añade el siguiente código al controlador.

using IronQr;
using IronQRScannerAsp.Models;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace IronQRScannerAsp.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;
        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }
        public IActionResult Index()
        {
          ViewBag.QrCodeText = "Text";
          return View();
        }
        [HttpPost]
        public IActionResult ScanQRCode(QRCodeModel qrImage)
        {
            string path = Path.Combine(_environment.WebRootPath, "ScanQRCode");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png");
            using (var stream = System.IO.File.Create(filePath))
            {
                qrImage.QRCodeImage.CopyTo(stream);
            }
            // Open the asset to read a QR Code from
            var bitmap = AnyBitmap.FromFile(filePath);
            // Load the asset into QrImageInput
            QrImageInput imageInput = new QrImageInput(bitmap);
            // Create a QR Reader object
            QrReader reader = new QrReader();
            // Read the Input an get all embedded QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);
            ViewBag.QrCodeText = results.First().Value;
            string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png";
            ViewBag.QrCodeUri = imageUrl;
          return View();
        }
    }
}
using IronQr;
using IronQRScannerAsp.Models;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
namespace IronQRScannerAsp.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;
        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }
        public IActionResult Index()
        {
          ViewBag.QrCodeText = "Text";
          return View();
        }
        [HttpPost]
        public IActionResult ScanQRCode(QRCodeModel qrImage)
        {
            string path = Path.Combine(_environment.WebRootPath, "ScanQRCode");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            string filePath = Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png");
            using (var stream = System.IO.File.Create(filePath))
            {
                qrImage.QRCodeImage.CopyTo(stream);
            }
            // Open the asset to read a QR Code from
            var bitmap = AnyBitmap.FromFile(filePath);
            // Load the asset into QrImageInput
            QrImageInput imageInput = new QrImageInput(bitmap);
            // Create a QR Reader object
            QrReader reader = new QrReader();
            // Read the Input an get all embedded QR Codes
            IEnumerable<QrResult> results = reader.Read(imageInput);
            ViewBag.QrCodeText = results.First().Value;
            string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/ScanQRCode/qrcode.png";
            ViewBag.QrCodeUri = imageUrl;
          return View();
        }
    }
}
Imports IronQr
Imports IronQRScannerAsp.Models
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
Namespace IronQRScannerAsp.Controllers
	Public Class QrCodeController
		Inherits Controller

		Private ReadOnly _environment As IWebHostEnvironment
		Public Sub New(ByVal environment As IWebHostEnvironment)
			_environment = environment
		End Sub
		Public Function Index() As IActionResult
		  ViewBag.QrCodeText = "Text"
		  Return View()
		End Function
		<HttpPost>
		Public Function ScanQRCode(ByVal qrImage As QRCodeModel) As IActionResult
			Dim path As String = System.IO.Path.Combine(_environment.WebRootPath, "ScanQRCode")
			If Not Directory.Exists(path) Then
				Directory.CreateDirectory(path)
			End If
			Dim filePath As String = System.IO.Path.Combine(_environment.WebRootPath, "ScanQRCode/qrcode.png")
			Using stream = System.IO.File.Create(filePath)
				qrImage.QRCodeImage.CopyTo(stream)
			End Using
			' Open the asset to read a QR Code from
			Dim bitmap = AnyBitmap.FromFile(filePath)
			' Load the asset into QrImageInput
			Dim imageInput As New QrImageInput(bitmap)
			' Create a QR Reader object
			Dim reader As New QrReader()
			' Read the Input an get all embedded QR Codes
			Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
			ViewBag.QrCodeText = results.First().Value
			Dim imageUrl As String = $"{Me.Request.Scheme}://{Me.Request.Host}{Me.Request.PathBase}" & "/ScanQRCode/qrcode.png"
			ViewBag.QrCodeUri = imageUrl
		  Return View()
		End Function
	End Class
End Namespace
VB   C#

Código Explicación

El fragmento de código proporcionado es para un controlador ASP.NET Core MVC llamado QrCodeController, que está diseñado para manejar las funcionalidades de escaneo de códigos QR utilizando la biblioteca IronQR. He aquí una breve descripción de lo que hace el código:

1. Guardar la imagen de código QR cargada

Construcción de caminos

Construye una ruta de archivo(ruta) dentro del directorio raíz web de la aplicación específicamente para guardar imágenes de códigos QR.("Directorio "ScanQRCode).

Comprueba si este directorio existe, y si no, lo crea para evitar cualquier error de archivo no encontrado al guardar el archivo.

Guardar archivos

Construye la ruta completa del archivo(rutaarchivo) donde se guardará la imagen del código QR cargado("ScanQRCode/qrcode.png"). Esto sobrescribe cualquier archivo existente con el mismo nombre, gestionando eficazmente nuevas exploraciones sin acumular archivos.

Abre un flujo de archivos y copia el contenido de la imagen cargada(qrImage.QRCodeImage, probablemente un archivo de formulario) a la ubicación especificada en el servidor.

2. Descifrar el código QR

Lectura del archivo de imagen

Utiliza AnyBitmap.FromFile(filePath) para cargar el archivo de imagen guardado en un formato adecuado para el escaneo de códigos QR. AnyBitmap sirve probablemente como clase de ayuda para convertir archivos de imagen en un objeto bitmap que el lector QR pueda procesar.

Inicializar el lector QR

Envuelve el mapa de bits cargado en un QrImageInput, que está específicamente diseñado para ser una entrada para el proceso de lectura de códigos QR. Instantiza un QrReader, un componente de la librería IronQR configurado para detectar y decodificar códigos QR.

Escanear el código QR

Llama a reader.Read(imageInput) para escanear la imagen de los códigos QR. Este método devuelve un IEnumerable<QrResult>, donde cada QrResult contiene datos de un código QR detectado en la imagen. Extrae el valor del primer resultado utilizando results.First().Value y almacenar esta información decodificada en ViewBag.QrCodeText. Esto supone que la imagen contiene al menos un código QR y no gestiona posibles errores cuando no se detectan códigos QR.

3. Preparación y devolución de la respuesta

Construcción de URL de imágenes

Construye una URL(imageUrl) apuntando a la imagen del código QR guardada en el servidor. Esta URL se construye utilizando el esquema, el host y la ruta base de la solicitud HTTP actual, lo que garantiza que los usuarios puedan acceder a ella para visualizarla. La URL construida se guarda en ViewBag.QrCodeUri.

Ver devolución

Devuelve la misma vista(Ver())que probablemente muestre al usuario tanto la imagen del código QR como el texto descodificado. ElViewBag` se utiliza para pasar el texto decodificado del código QR y la URL de la imagen a la vista para su renderización.

Añadir Vista a la clase Controlador

Añade una nueva vista, haz click con el botón derecho en el método de acción CreateQRCode de la clase QrCodeController.

Cómo Escanear Código QR en ASP .NET: Figura 10 - Añadir una nueva vista en la clase `QrCodeController

Seleccione la opción "Añadir vista" y, a continuación, "Vista Razor". Haga clic en "Añadir".

Cómo Escanear Código QR en ASP .NET: Figura 11 - Seleccione la opción Add View, luego Razor View, luego Add

A continuación, seleccione la plantilla "Crear" y la clase Modelo generada anteriormente.

Cómo Escanear Código QR en ASP .NET: Figura 12 - Seleccione la plantilla Crear generada anteriormente

Ahora sustituye el código de la clase view por el que se muestra a continuación.

@model IronQRScannerAsp.Models.QRCodeModel
@{
    ViewData["Title"] = "ScanQRCode";
}
<h1>ScanQRCode</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-14">
        <form asp-action="ScanQRCode" enctype="multipart/form-data">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <h3>Scanned Text:</h3>
                <h4>@ViewBag.QrCodeText</h4>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{
        await Html.RenderPartialAsync("_ValidationScriptsPartial");
    }
}
@model IronQRScannerAsp.Models.QRCodeModel
@{
    ViewData["Title"] = "ScanQRCode";
}
<h1>ScanQRCode</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-14">
        <form asp-action="ScanQRCode" enctype="multipart/form-data">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
            </div>
            <div class="form-group">
                <h3>Scanned Text:</h3>
                <h4>@ViewBag.QrCodeText</h4>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{
        await Html.RenderPartialAsync("_ValidationScriptsPartial");
    }
}
model ReadOnly Property () As IronQRScannerAsp.Models.QRCodeModel
	ViewData("Title") = "ScanQRCode"
End Property
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> </div> <div class="form-group"> <h3> Scanned Text:</h3> <h4> @ViewBag.QrCodeText</h4> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> <div> <a asp-action="Index"> Clear</a> </div> @section Scripts
"form-group"> </div> <div class="form-group"> (Of h3) Scanned Text
	Inherits </h3>(Of h4) ViewBag.QrCodeText</h4> </div> <div class="form-group"> <img src="@ViewBag.QrCodeUri" class="img-thumbnail" /> </div> </form> </div> </div> (Of div) <a asp-action="Index"> Clear</a> </div> section Scripts

'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class="form-group"> </div> <div class
"text-danger"></div> <div class="form-group"> </div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> <div class
"ModelOnly" class="text-danger"></div> <div class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class
"multipart/form-data"> <div asp-validation-summary="ModelOnly" class
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary
"ScanQRCode" enctype="multipart/form-data"> <div asp-validation-summary
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action="ScanQRCode" enctype
"col-md-14"> <form asp-action="ScanQRCode" enctype
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: Private Private Private Private Private Friend <h1> ScanQRCode</h1> <h4> QRCodeModel</h4> <hr /> <div Class="row"> <div class="col-md-14"> <form asp-action
"row"> <div class="col-md-14"> <form asp-action
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Private Private Private Private Private Private Private Friend (Of h1) ScanQRCode</h1> (Of h4) QRCodeModel</h4> <hr /> <div Class="row"> <div class
	@
	If True Then
		Await Html.RenderPartialAsync("_ValidationScriptsPartial")
	End If
End Class
VB   C#

Ahora en el program.cs cambia el siguiente código para que la vista anterior sea la ruta por defecto

app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}");
app.MapControllerRoute(
name: "default",
pattern: "{controller=QrCode}/{action=Index}");
app.MapControllerRoute(name:= "default", pattern:= "{controller=QrCode}/{action=Index}")
VB   C#

Esto cambia la ruta por defecto de HomeController a nuestro controlador QrCode.

Imagen de entrada con URL: https://ironsoftware.com/csharp/qr.

Cómo escanear un código QR en ASP .NET: Figura 13 - Ejemplo de entrada de código QR

Salida

Cómo Escanear Código QR en ASP .NET: Figura 14 - Ejemplo de salida después de seguir los pasos de arriba

En la página, seleccione una imagen de código QR y haga clic en cargar para descodificar el código QR. Esta aplicación también puede modificarse para leer un vídeo y mostrar los resultados.

Paso 4: Leer código QR avanzado

Para leer códigos QR avanzados, IronQR proporciona los siguientes ajustes.

using IronQr;
using IronSoftware.Drawing;
using IronQr.Enum;
using System.Collections.Generic;
var inputBmp = AnyBitmap.FromFile("QrImage.png");
// Use Auto => Machine Learning Scan
// Careful Scan => Useful for scanning documents slowly and carefully
QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal);
// Use Machine Learning Scan
// High Speed => For scanning frames from a camera
QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only);
// Use Scan without Machine Learning
QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only);
using IronQr;
using IronSoftware.Drawing;
using IronQr.Enum;
using System.Collections.Generic;
var inputBmp = AnyBitmap.FromFile("QrImage.png");
// Use Auto => Machine Learning Scan
// Careful Scan => Useful for scanning documents slowly and carefully
QrImageInput scan_ML_and_normal = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results1 = new QrReader().Read(scan_ML_and_normal);
// Use Machine Learning Scan
// High Speed => For scanning frames from a camera
QrImageInput scan_ML_only = new QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel);
IEnumerable<QrResult> results2 = new QrReader().Read(scan_ML_only);
// Use Scan without Machine Learning
QrImageInput scan_normal_only = new QrImageInput(inputBmp, QrScanMode.OnlyBasicScan);
IEnumerable<QrResult> results3 = new QrReader().Read(scan_normal_only);
Imports IronQr
Imports IronSoftware.Drawing
Imports IronQr.Enum
Imports System.Collections.Generic
Private inputBmp = AnyBitmap.FromFile("QrImage.png")
' Use Auto => Machine Learning Scan
' Careful Scan => Useful for scanning documents slowly and carefully
Private scan_ML_and_normal As New QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel)
Private results1 As IEnumerable(Of QrResult) = (New QrReader()).Read(scan_ML_and_normal)
' Use Machine Learning Scan
' High Speed => For scanning frames from a camera
Private scan_ML_only As New QrImageInput(inputBmp, QrScanMode.OnlyDetectionModel)
Private results2 As IEnumerable(Of QrResult) = (New QrReader()).Read(scan_ML_only)
' Use Scan without Machine Learning
Private scan_normal_only As New QrImageInput(inputBmp, QrScanMode.OnlyBasicScan)
Private results3 As IEnumerable(Of QrResult) = (New QrReader()).Read(scan_normal_only)
VB   C#

Aprovechando lo último en tecnología ML, hemos elevado el lector de códigos QR a nuevas cotas. El sofisticado modelo ML mejora la precisión y eficacia de las aplicaciones en la descodificación de códigos QR, incluso en condiciones complejas. Tanto si se trata de leer códigos QR de imágenes fijas, secuencias de vídeo o secuencias de cámaras en directo, la solución basada en ML proporciona la información necesaria de forma rápida y fiable. Esta innovación agiliza la recuperación de datos y aumenta la seguridad al identificar los códigos QR auténticos y señalar las amenazas potenciales. Con nuestra tecnología ML, puede estar seguro de que sus capacidades de escaneado de códigos QR están a la vanguardia, proporcionando a sus usuarios una experiencia fluida y segura.

Licencia (prueba disponible)

Los desarrolladores pueden obtener una licencia de prueba de IronQR enaquí. La clave debe colocarse en appSettings.json.

{
  "IronQR.License.LicenseKey": "My key"
}

Conclusión

En este artículo, hemos explorado cómo escanear códigos QR en ASP.NET Core utilizandoIronQR. Integración deIronQR en una aplicación ASP.NET para escanear códigos QR es un proceso sencillo que mejora las capacidades de las aplicaciones web, haciéndolas más interactivas y fáciles de usar. IronQRy su facilidad de uso lo convierten en una opción excelente para los desarrolladores que deseen implantar funciones relacionadas con los códigos de barras.

< ANTERIOR
Cómo generar códigos QR en ASP .NET Core
SIGUIENTE >
Cómo escanear códigos QR en C#

¿Listo para empezar? Versión: 2024.11 acaba de salir

Descarga gratuita de NuGet Descargas totales: 22,088 Ver licencias >