IRONSOFTWAREHOME
USANDO IRONQR

Cómo generar códigos QR en ASP.NET Core

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

Los códigos QR se han convertido en una parte integral de la tecnología moderna, ofreciendo una forma conveniente de almacenar y transmitir información. En el desarrollo web, generadores de códigos QR como el que implementaremos usando IronQR en ASP.NET Core, ofrecen capacidades robustas para la creación dinámica de códigos QR. Los generadores de códigos QR son invaluables para varias aplicaciones como sistemas de boletos, autenticación, gestión de inventario, y más. Este artículo profundiza en el proceso de creación de códigos QR en ASP.NET Core usando IronQR, una biblioteca poderosa diseñada para este propósito. ASP.NET Core, al ser un marco versátil para construir aplicaciones web, ofrece capacidades robustas para la generación de códigos QR. En este artículo, profundizaremos en el proceso de creación de códigos QR en ASP.NET Core usando IronQR, una poderosa biblioteca para la generación de códigos QR de Iron Software.

Cómo generar códigos QR en ASP.NET Core

  1. Crear un proyecto ASP.Net usando Visual Studio
  2. Instalar la biblioteca IronQR desde el Administrador de Paquetes
  3. Generar Código QR
  4. Generar Código QR con Formato

Entendiendo IronQR

IronQR es una biblioteca de generación de códigos QR de alto rendimiento para aplicaciones .NET. Proporciona una API simple e intuitiva para generar códigos QR con varias opciones de personalización. IronQR es compatible con .NET Standard, lo que lo hace compatible con una amplia gama de plataformas, incluido ASP.NET Core. Con IronQR, los desarrolladores pueden generar sin esfuerzo códigos QR con diferentes tipos de datos, niveles de corrección de errores, tamaños y formatos.

Características principales

1. Lectura y creación de códigos QR

IronQR te permite generar y leer códigos QR con facilidad. Ya sea que necesites crear códigos QR dinámicamente o extraer información de los existentes, esta biblioteca lo cubre.

2. API fácil de usar

La biblioteca proporciona una API amigable para los usuarios que permite a los desarrolladores integrar la funcionalidad de códigos de barras en sus proyectos .NET rápidamente. Puedes empezar a trabajar con códigos QR en solo unos minutos.

3. Compatibilidad

IronQR es compatible con varias versiones de .NET, incluyendo:

  1. C#, VB.NET, F#
  2. .NET Core (8, 7, 6, 5 y 3.1+)
  3. .NET Standard (2.0+)
  4. .NET Framework (4.6.2+)

Cubre una amplia gama de tipos de proyectos, incluyendo web (Blazor & WebForms), móvil (Xamarin & MAUI), de escritorio (WPF & MAUI), y aplicaciones de consola.

4. Modelo de aprendizaje automático para la detección de códigos QR

IronQR utiliza un modelo avanzado personalizado de Aprendizaje Automático para detectar códigos QR. Esto asegura un reconocimiento preciso y confiable de los códigos. Además, hay una opción de Modo Slim (no-ML) disponible para aquellos que prefieren un enfoque liviano.

5. Lectura de códigos QR

Puedes leer códigos QR de varios formatos de imagen, incluyendo:

  1. Imágenes (jpg, png, svg, bmp)
  2. Imágenes Multipágina (gif, tif, tiff)
  3. System.Drawing Mapas de bits
  4. Imágenes de IronDrawing (AnyBitmap)

6. Escritura de códigos QR

IronQR te permite escribir códigos QR para diferentes tipos de documentos, tales como:

  1. Imágenes (jpg, png, gif, tiff, bmp)
  2. System.Drawing Imágenes
  3. Streams (MemoryStream, byte[])
  4. PDF (Estampar en PDF Existente)

7. Estilo de códigos QR

Personaliza los códigos QR redimensionándolos, ajustando márgenes y bordes, recoloreándolos, añadiendo logotipos

8. Manejo y corrección de errores

IronQR proporciona mensajes detallados de error y soporta niveles personalizados de corrección de errores QR.

Con este conocimiento, comencemos con la aplicación para generar el código QR en ASP.NET Core.

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

Antes de profundizar en la generación de códigos QR, configuremos un nuevo proyecto ASP.NET Core. Aquí están los pasos para iniciar un nuevo proyecto:

Empieza creando un nuevo proyecto en Visual Studio y seleccionando la aplicación de plantilla ASP.Net Core Web App

Cómo generar códigos QR en ASP .NET Core: Figura 1 - Seleccionar la plantilla de aplicación web ASP.NET CORE

Proporciona Nombre del Proyecto y ubicación

Cómo generar códigos QR en ASP .NET Core: Figura 2 - Nombrar el proyecto y la ubicación donde desea guardar

Seleccione la versión .NET requerida.

Cómo generar códigos QR en ASP .NET Core: Figura 3 - Seleccionar la versión correcta de .NET.

Haz clic en el botón "crear" para generar el código de la aplicación desde la plantilla

Cómo generar códigos QR en ASP .NET Core: Figura 4 - Hacer clic en el botón "crear" para generar el código de la plantilla

Paso 2: Instalar la biblioteca IronQR desde el Administrador de paquetes

Instala la biblioteca IronQR desde el Administrador de Paquetes de Visual Studio como se muestra a continuación.

Cómo generar códigos QR en ASP .NET Core: Figura 5 - Buscar IronOCR usando el Administrador de Paquetes de Visual Studio e instalarlo

IronQR también se puede instalar usando el Administrador de Paquetes NuGet.

Cómo generar códigos QR en ASP .NET Core: Figura 6 - Buscar IronOCR usando el Administrador de Paquetes NuGet

Paso 3: Generar un código QR

Ahora, crearemos una aplicación de código QR.

Crear Modelo QRCode

using System.ComponentModel.DataAnnotations;

namespace GenerateQRCode.Models
{
    public class QRCodeModel
    {
        [Display(Name = "Enter QR Code Text")]
        public string QRCodeText { get; set; }
    }
}

Crear un controlador de código QR

Para agregar un nuevo controlador, haz clic derecho sobre la carpeta del controlador y proporciona un nombre como se muestra a continuación.

Cómo generar códigos QR en ASP .NET Core: Figura 7 - Agregar un nuevo controlador haciendo clic en la carpeta y darle un nombre

Selecciona el Controlador Vacío.

Cómo generar códigos QR en ASP .NET Core: Figura 8 - Hacer clic en Controlador Vacío en el aviso

Proporciona un nombre.

Cómo generar códigos QR en ASP .NET Core: Figura 9 - Nombrar el controlador

A continuación, integra el siguiente código en el controlador.

using GenerateQRCode.Models;
using IronSoftware.Drawing;
using IronQr;
using Microsoft.AspNetCore.Mvc;

namespace GenerateQRCode.Controllers
{
    public class QrCodeController : Controller
    {
        private readonly IWebHostEnvironment _environment;

        public QrCodeController(IWebHostEnvironment environment)
        {
            _environment = environment;
        }

        public IActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public IActionResult CreateQRCode(QRCodeModel generateQRCode)
        {
            try
            {
                string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");
                // Create a QR Code object
                QrCode myQr = QrWriter.Write(generateQRCode.QRCodeText);
                // Save QR Code as a Bitmap
                AnyBitmap qrImage = myQr.Save();
                // Save QR Code Bitmap as File
                qrImage.SaveAs(filePath);
                string fileName = Path.GetFileName(filePath); // qr code file
                string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
                ViewBag.QrCodeUri = imageUrl;
            }
            catch (Exception)
            {
                throw;
            }
            return View();
        }
    }
}

Explicación del código

Definición de espacio de nombres y clase

El código comienza con declaraciones de uso, que importan los espacios de nombres necesarios. El espacio de nombres GenerateQRCode.Controllers contiene la clase QrCodeController.

Constructor del controlador

La clase QrCodeController tiene un constructor que toma un parámetro IWebHostEnvironment. Este parámetro es inyectado por ASP.NET Core para manejar tareas relacionadas con el alojamiento web.

Métodos de acción

  • Index(): Este método devuelve una vista (presumiblemente una página HTML) cuando se accede. No parece estar directamente relacionado con la generación de códigos QR.
  • CreateQRCode(QRCodeModel generateQRCode): Este método es el corazón de la lógica de generación de códigos QR. Recibe un objeto QRCodeModel (presumiblemente que contiene el texto del código QR) como parámetro.

Dentro del método

  • Construye una ruta para guardar la imagen generada del código QR.
  • Crea un objeto de código QR utilizando QrWriter.Write(generateQRCode.QRCodeText).
  • Guarda el código QR como una imagen bitmap.
  • Construye un URL de la imagen basado en los detalles de la solicitud web.
  • Establece la propiedad ViewBag.QrCodeUri con la URL de la imagen.
  • Si ocurre alguna excepción durante este proceso, son lanzadas.

Generación de códigos QR

La generación real del código QR ocurre dentro del método CreateQRCode. La llamada QrWriter.Write(generateQRCode.QRCodeText) crea un objeto de código QR basado en el texto proporcionado.

Guardar imagen

El código QR generado se guarda como una imagen de mapa de bits utilizando qrImage.SaveAs(filePath). La ruta del archivo de imagen se construye basándose en la ruta raíz web y el nombre de archivo deseado.

URL de la imagen

El imageUrl se construye usando el esquema, el anfitrión, y la base de la ruta del pedido web. Este URL apunta a la ubicación donde la imagen generada del código QR puede ser accedida. En general, este controlador maneja la generación de códigos QR, guarda la imagen y proporciona un URL de imagen para uso posterior.

Agregar vista al controlador

Para agregar una nueva vista, haga clic derecho en el método de acción CreateQRCode en la clase QrCodeController.

Cómo generar códigos QR en ASP .NET Core: Figura 10 - Agregar una nueva vista en la clase QrCodeController

Selecciona "Agregar Vista" luego selecciona "Razor View". Haz clic en el botón "Añadir".

Cómo generar códigos QR en ASP .NET Core: Figura 11 - Seleccione la opción Agregar Vista, luego Vista Razor, luego Agregar

Luego selecciona la plantilla "Create" y la clase del Modelo generada previamente.

Cómo generar códigos QR en ASP .NET Core: Figura 12 - Seleccione la plantilla Create generada anteriormente

Ahora reemplaza el código a continuación en la vista

@model GenerateQRCode.Models.QRCodeModel

@{
    ViewData["Title"] = "Generate QR Code";
}

<h1>Generate QR Code</h1>
<h4>QRCodeModel</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="CreateQRCode">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="QRCodeText" class="control-label"></label>
                <input asp-for="QRCodeText" class="form-control" />
                <span asp-validation-for="QRCodeText" class="text-danger"></span>
            </div>
            <div class="form-group">
                <a href="#" class="btn btn-primary">Create QR Code</a>
            </div>
            <div class="form-group">
                <img src="@ViewBag.QrCodeUri" class="img-thumbnail" alt="Your QR Code will appear here." />
            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="Index">Clear</a>
</div>
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

Haz lo mismo para el método de acción de índice también, de modo que cuando se inicie la aplicación, no arroje un error para la solicitud POST.

Ahora en el Program.cs, cambie el siguiente código para hacer que la vista anterior sea la ruta predeterminada.

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

Esta acción modificará la ruta predeterminada de HomeController a nuestro QrCodeController.

Ahora, compile y ejecute el proyecto.

Cómo generar códigos QR en ASP .NET Core: Figura 13 - Página de inicio de ejemplo del proyecto

Ingresa cualquier texto en el cuadro de texto y haz clic en 'Crear.' Esto creará un nuevo código QR como se muestra a continuación.

Cómo generar códigos QR en ASP .NET Core: Figura 14 - Ingrese cualquier texto y haga clic en crear para crear un nuevo código QR utilizando IronQR

Agregar estilo al código QR

QrStyleOptions se utilizan para estilizar la generación del código QR.

[HttpPost]
public IActionResult CreateQRCode(QRCodeModel generateQRCode)
{
    try
    {
        string path = Path.Combine(_environment.WebRootPath, "GeneratedQRCode");
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
        string filePath = Path.Combine(_environment.WebRootPath, "GeneratedQRCode/qrcode.png");

        // Create a QR Code object
        QrCode qrCode = QrWriter.Write(generateQRCode.QRCodeText);
        QrStyleOptions style = new QrStyleOptions
        {
            Dimensions = 300, // px size
            Margins = 10,     // px margins
            Color = Color.YellowGreen // custom color
        };

        // Save QR Code with style options as a bitmap
        AnyBitmap qrImage = qrCode.Save(style);
        // Save QR Code Bitmap to File
        qrImage.SaveAs(filePath);

        string fileName = Path.GetFileName(filePath); // qr code file
        string imageUrl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}" + "/GeneratedQRCode/" + fileName;
        ViewBag.QrCodeUri = imageUrl;
    }
    catch (Exception)
    {
        throw;
    }
    return View();
}

Resultado

Cómo generar códigos QR en ASP .NET Core: Figura 15 - Modificando el color del código QR programáticamente

Licencia (versión de prueba disponible)

Para los desarrolladores que quieren probar IronQR, una licencia de prueba está disponible aquí. Esta clave de licencia debe ubicarse en el archivo appSettings.json. Al hacerlo se eliminará la marca de agua mostrada en las imágenes de arriba.

{
  "IronQr.License.LicenseKey": "My key"
}
JSON

Conclusión

En este artículo, hemos explorado cómo generar códigos QR en ASP.NET Core usando IronQR. Aprovechando el poder de IronQR, los desarrolladores pueden integrar fácilmente la funcionalidad de generación de códigos QR en sus aplicaciones web. Ya sea para boletos, autenticación o para compartir información, los códigos QR ofrecen una solución versátil para transmitir datos de manera eficiente. Con IronQR, crear y personalizar códigos QR en ASP.NET Core nunca ha sido tan fácil. Comience a incorporar la generación de códigos QR en sus proyectos ASP.NET Core y desbloquee un mundo de posibilidades para la codificación dinámica de datos y el intercambio.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta