Saltar al pie de página
USANDO IRONQR

Generador y Lector de Códigos QR .NET Core | IronQR

Crear un generador de código QR en .NET Core es sencillo si eliges la biblioteca adecuada. Al evaluar los requisitos de un generador de códigos QR, los desarrolladores buscan un equilibrio entre facilidad de uso y funciones avanzadas opcionales. Ya sea para crear aplicaciones web ASP.NET Core o herramientas de consola, los desarrolladores necesitan una biblioteca fiable que gestione todo, desde la creación básica de códigos QR hasta la personalización avanzada.

IronQR ofrece una potente solución for .NET Core que admite la codificación de cadenas de texto, URL y texto Unicode en japonés. Mientras que algunos pueden buscar inicialmente una biblioteca de código abierto .NET como la biblioteca QRCoder (conocida por su licencia MIT permisiva), IronQR proporciona una alternativa de nivel empresarial con capacidades de aprendizaje automático y soporte dedicado.

Este tutorial muestra cómo generar códigos QR, configurar niveles de corrección de errores y leer códigos existentes mediante detección basada en aprendizaje automático, todo ello dentro de sus proyectos .NET Core.

Comience a utilizar IronQR hoy mismo mediante una prueba gratuita.

Empiece con IronQR ahora.
green arrow pointer

¿Cómo instalar una biblioteca de códigos QR en .NET Core?

Para empezar, abra Visual Studio y haga clic en el botón Crear para iniciar un nuevo proyecto. Una vez asignado el nombre del proyecto, la instalación de la biblioteca a través del gestor de paquetes NuGet se realiza en cuestión de segundos. Mientras que algunos desarrolladores podrían buscar el paquete NuGet de QRCoder, usted puede instalar el framework IronQR ejecutando el siguiente comando en la consola del gestor de paquetes:

Install-Package IronQR

También puede utilizar la interfaz de usuario del gestor de paquetes NuGet buscando "IronQR" y haciendo clic en el botón de instalación. La biblioteca ofrece una implementación .NET compatible con .NET Core 3.x, .NET 5, 6, 7, 8, 9 y 10, lo que la hace ideal para el desarrollo web moderno y los proyectos multiplataforma.

Tras la instalación, agregue las directivas using requeridas al principio del archivo. IronQR se integra con IronSoftware.Drawing para la gestión de imágenes multiplataforma, eliminando así la necesidad de dependencias específicas de la plataforma, como System.Drawing.Common, que quedó obsoleta para su uso multiplataforma en .NET 6 y versiones posteriores.

Puede verificar que la instalación se realizó correctamente revisando las referencias del paquete de su proyecto en el archivo .csproj o confirmando que el paquete NuGet aparece en la salida de la consola del Administrador de paquetes. Una vez instalada, la referencia de la API de IronQR estará disponible de inmediato.

¿Cómo se genera un código QR?

La clase QrWriter , a menudo utilizada junto con métodos de extensión convenientes, hace que la generación de códigos QR sea sencilla. Aquí está el código fuente de un ejemplo completo que utiliza declaraciones de nivel superior para generar un código QR en solo unas pocas líneas de código:

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");

// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");

// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");
$vbLabelText   $csharpLabel

Resultado

Generador de códigos QR .NET Core: crear y leer códigos de respuesta rápida en C#: Imagen 1 - QR creado a partir de la URL

El método QrWriter.Write() procesa los datos en QrCodeData, que contiene los módulos sin procesar (los cuadrados blancos y negros) del símbolo QR. IronQR utiliza generadores internos de carga útil para garantizar que el texto de entrada se codifica de forma eficiente para datos numéricos, cadenas de texto alfanuméricas o matrices de bytes.

La clase AnyBitmap de IronSoftware.Drawing permite guardar imágenes en múltiples plataformas, por lo que el mismo código funciona en Windows, macOS y Linux sin modificaciones. Puede guardar la salida como PNG, JPEG u otros formatos compatibles según su caso de uso.

Para ver una demostración funcional, consulte la página de ejemplo de generación de código QR , que muestra opciones de configuración adicionales junto con el flujo de trabajo de generación básico.

¿Qué son los niveles de corrección de errores y por qué son importantes?

La corrección de errores determina cuánto daño puede sufrir un símbolo QR sin dejar de ser escaneable. Se trata de una de las características avanzadas opcionales que permite la creación de marca y la durabilidad. El estándar de código QR (ISO/IEC 18004) define cuatro niveles de corrección de errores, cada uno de los cuales negocia la capacidad de resiliencia de los datos.

Niveles de corrección de errores de códigos QR y sus casos de uso
Nivel Recuperación de datos Mejor para
L (Bajo) ~7% Pantallas digitales limpias
M (Mediano) ~15% Uso general
Q (Cuartil) ~25% Materiales impresos
H (Alto) ~30% Entornos hostiles, superposiciones de logotipos

Configurar la corrección de errores usando QrOptions :

using IronQr;
using IronSoftware.Drawing;

// Configure with high error correction level
var options = new QrOptions(QrErrorCorrectionNivel.High, 20);

// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Configure with high error correction level
var options = new QrOptions(QrErrorCorrectionNivel.High, 20);

// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
$vbLabelText   $csharpLabel

Resultado QR

Generador de códigos QR .NET Core: crear y leer códigos de respuesta rápida en C#: Imagen 2 - Código QR generado con corrección de errores

El segundo parámetro especifica el número máximo de versión permitido, controlando el tamaño y la capacidad de datos del código QR. Una mayor corrección de errores es esencial cuando se añade una imagen de logotipo o para escenarios de desgaste físico.

Cuando planee superponer un logotipo en un código QR, utilice siempre el Nivel H. La redundancia adicional compensa los módulos ocultos por el logotipo, manteniendo el código escaneable. La documentación de corrección de errores de IronQR explica cómo la selección de versión interactúa con la capacidad de datos y el nivel de corrección.

¿Cómo personalizar la apariencia del código QR con logotipo y colores?

QrStyleOptions de IronQR permite la generación de códigos QR alineados con la marca con colores, dimensiones y logotipos integrados personalizados. Esto es particularmente útil para materiales de marketing, empaques de productos y entradas a eventos donde la coherencia visual es importante.

using IronQr;
using IronSoftware.Drawing;

var styleOptions = new QrStyleOptions
{
    Dimensions = 300,
    Margins = 10,
    Color = Color.DarkBlue,
    Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};

QrCode qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");
using IronQr;
using IronSoftware.Drawing;

var styleOptions = new QrStyleOptions
{
    Dimensions = 300,
    Margins = 10,
    Color = Color.DarkBlue,
    Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};

QrCode qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");
$vbLabelText   $csharpLabel

Código QR estilizado

Generador de códigos QR .NET Core: crear y leer códigos de respuesta rápida en C#: Imagen 3 - Salida de código QR con estilo

La propiedad Dimensions establece el tamaño de la imagen de salida en píxeles. La propiedad Margins controla la zona tranquila: el borde en blanco alrededor del código QR que los escáneres necesitan para identificar correctamente el límite del símbolo. La guía de personalización del código QR cubre propiedades de estilo adicionales, incluidas las opciones de color de fondo y forma del módulo.

Al insertar un logotipo, evite que supere el 30 % del área total del código QR. Superar este umbral puede comprometer la legibilidad incluso con la corrección de nivel H. Probar con múltiples aplicaciones de escáner QR después de la personalización es una buena práctica.

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

La integración de la generación de códigos QR en ASP.NET Core sigue el patrón Modelo Vista Controlador. Aquí hay una implementación de clase HomeController que devuelve una imagen de código QR directamente desde un método de acción:

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

namespace Examples
{
    public class HomeController : Controller
    {
        public IActionResult GenerateQR(string content)
        {
            QrCode myQr = QrWriter.Write(content);
            AnyBitmap qrImage = myQr.Save();
            byte[] imageBytes = qrImage.ExportBytes();
            return File(imageBytes, "image/png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

namespace Examples
{
    public class HomeController : Controller
    {
        public IActionResult GenerateQR(string content)
        {
            QrCode myQr = QrWriter.Write(content);
            AnyBitmap qrImage = myQr.Save();
            byte[] imageBytes = qrImage.ExportBytes();
            return File(imageBytes, "image/png");
        }
    }
}
$vbLabelText   $csharpLabel

Este endpoint acepta datos de código QR como parámetro y devuelve directamente la imagen PNG generada. Este enfoque funciona tanto con proyectos de API web ASP.NET Core como con vistas de Razor .

Para las aplicaciones ASP.NET Core de producción, considere almacenar en caché los códigos QR generados con frecuencia usando IMemoryCache o IDistributedCache para reducir la sobrecarga de la CPU. Los códigos QR para URL estáticas, identificadores de productos o enlaces de eventos no cambian entre solicitudes y son candidatos ideales para el almacenamiento en caché.

También puedes integrar IronQR en un punto final de API mínima. El tutorial de integración de ASP.NET Core proporciona un ejemplo completo que incluye patrones de inyección de dependencia y cómo servir imágenes de código QR desde un componente Blazor .

Registrar la clave de licencia de IronQR en Program.cs usando el patrón de declaración de nivel superior mantiene limpia la configuración de inicio:

using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
$vbLabelText   $csharpLabel

Establezca la clave de licencia antes de llamar a cualquier método IronQR . En desarrollo, puede aplicar una clave de prueba gratuita obtenida de la página de licencias de IronQR .

¿Cómo se codifica el texto Unicode japonés?

IronQR admite la codificación de texto Unicode japonés a través del modo Kanji, que codifica de manera eficiente caracteres Unicode japoneses utilizando menos segmentos de datos que la codificación estándar. Esto reduce la versión (tamaño) del código QR para el mismo contenido, produciendo un símbolo menos complejo que se escanea más rápido.

using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
$vbLabelText   $csharpLabel

Resultado

Generador de códigos QR .NET Core: crear y leer códigos de respuesta rápida en C#: Imagen 4 - Código QR codificado con texto Unicode japonés

La biblioteca selecciona automáticamente el modo Kanji cuando detecta caracteres japoneses, optimizando la capacidad de datos del código QR sin configuración manual de segmentos de datos. Esto es importante para las aplicaciones dirigidas a usuarios de habla japonesa, como plataformas de comercio electrónico, menús de restaurantes o quioscos de información turística.

El modo Kanji codifica caracteres del conjunto de caracteres Shift JIS. Si su aplicación procesa texto en japonés y latín en la misma cadena, IronQR maneja el cambio de modo internamente, seleccionando la codificación más eficiente para cada segmento. Para conocer las mejores prácticas de internacionalización en .NET, la documentación de globalización de Microsoft proporciona un contexto útil sobre la codificación de caracteres.

¿Cómo leer códigos QR con aprendizaje automático?

IronQR se distingue por su lector QR impulsado por aprendizaje automático . El modelo ML logra una alta precisión incluso al leer códigos QR desde ángulos o imágenes parcialmente oscurecidas: una ventaja significativa sobre los algoritmos de detección tradicionales basados ​​en umbrales utilizados en muchas alternativas de código abierto.

using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
AnyBitmap inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);

// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);

foreach (var result in results)
{
    Console.WriteLine($"Found: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
AnyBitmap inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);

// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);

foreach (var result in results)
{
    Console.WriteLine($"Found: {result.Value}");
}
$vbLabelText   $csharpLabel

Salida de lectura de código QR

Generador de códigos QR .NET Core: crear y leer códigos de respuesta rápida en C#: Imagen 5 - Datos leídos del código QR

El objeto QrResult contiene el valor decodificado junto con los metadatos de posición, que puede usar para resaltar la región del código QR detectada en superposiciones de IU o en canales de procesamiento de documentos. Esta capacidad hace que IronQR sea ideal para el procesamiento de documentos y sistemas de gestión de inventario.

El modelo ML se ejecuta completamente en el dispositivo sin necesidad de llamadas a la API en la nube, lo que lo hace adecuado para entornos aislados y aplicaciones fuera de línea. Los detectores tradicionales basados ​​en CV, como ZXing .NET, funcionan bien con códigos limpios y frontales, pero a menudo tienen problemas con condiciones del mundo real, como resplandor, rotación o daños. El enfoque ML de IronQR maneja estos escenarios de manera confiable.

Para el procesamiento de documentos por lotes, puede pasar varias imágenes al lector en secuencia y recopilar todos los resultados. La documentación de lectura de códigos QR cubre la lectura de páginas PDF y transmisiones de cámara, además de archivos de imágenes estáticas.

¿Cómo funciona el soporte multiplataforma?

A diferencia de las soluciones que dependen de System.Drawing.Common (obsoleto para uso multiplataforma en .NET 6+), IronQR usa IronSoftware.Drawing para proyectos verdaderamente multiplataforma. Su código se ejecuta de forma coherente en Windows, macOS, Linux, iOS y Android. Para proyectos multiplataforma, las alternativas a SkiaSharp son innecesarias: IronQR maneja la abstracción de la plataforma internamente.

La documentación multiplataforma de .NET explica la historia más amplia de compatibilidad de plataformas for .NET 10. IronQR se alinea con estos principios al evitar por completo las API específicas de la plataforma.

IronQR admite los siguientes objetivos de implementación:

  • .NET 10, 9, 8, 7, 6 : todas las versiones modernas de .NET
  • .NET Core 3.x : para aplicaciones que aún no han migrado a .NET moderno
  • Xamarin y MAUI - para el desarrollo de aplicaciones móviles
  • Azure Functions y AWS Lambda : para cargas de trabajo sin servidor

Al ejecutarse en contenedores Docker, no se necesitan paquetes de sistema adicionales más allá de la imagen de ejecución .NET estándar. Esto simplifica su Dockerfile en comparación con las bibliotecas que requieren dependencias GDI+ nativas. La guía de implementación de IronQR cubre la configuración para entornos en contenedores y en la nube.

¿Cómo se compara IronQR con otras bibliotecas QR .NET ?

Existen varias bibliotecas de códigos QR .NET , cada una con diferentes ventajas y desventajas. Comprender las diferencias le ayudará a elegir la herramienta adecuada para su proyecto.

QRCoder es una biblioteca de código abierto con licencia MIT. Funciona bien para la generación directa de códigos QR, pero no incluye capacidades de lectura de códigos QR ni detección impulsada por aprendizaje automático. Sus opciones de salida son más limitadas en comparación con el soporte de salida estilizada de IronQR.

ZXing .NET es un puerto C# de la biblioteca Java ZXing. Admite tanto lectura como escritura, pero se basa en técnicas de visión artificial tradicionales que tienen problemas con códigos dañados o rotados. El manejo de imágenes multiplataforma requiere configuración adicional.

IronQR ofrece generación y lectura en un solo paquete, con licencia empresarial que incluye soporte dedicado. El lector con tecnología ML, la salida estilizada y la integración IronSoftware.Drawing lo convierten en una solución más completa para aplicaciones de producción.

Para obtener una comparación detallada de las características, consulte los artículos Comparación de IronQR vs QRCoder y Comparación de IronQR vs ZXing .

¿Cuales son tus próximos pasos?

IronQR proporciona una solución completa para la generación y lectura de códigos QR en .NET Core. Al manejar automáticamente generadores de carga útiles complejos y el ensamblaje de módulos sin procesar y datos QrCodeData, simplifica el ciclo de desarrollo. Ya sea que necesite una alternativa de biblioteca de código abierto simple o un sistema con funciones avanzadas opcionales, la arquitectura multiplataforma de IronQR garantiza un funcionamiento confiable.

Para continuar desarrollando con IronQR, explora estos recursos:

Comience su prueba gratuita para desbloquear todo el potencial de IronQR sin ningún compromiso inicial.

Preguntas Frecuentes

¿Cómo puedo generar códigos QR en .NET Core utilizando IronQR?

Puede generar códigos QR en .NET Core utilizando IronQR, que ofrece una biblioteca fácil de usar que permite la creación básica de códigos QR, así como funciones avanzadas de personalización.

¿Qué opciones de personalización están disponibles con IronQR para la generación de códigos QR?

IronQR ofrece varias opciones de personalización, incluida la configuración de los niveles de corrección de errores y la adición de logotipos a los códigos QR, lo que garantiza que cumplan sus requisitos específicos.

¿Puede IronQR gestionar la generación de códigos QR en aplicaciones web ASP.NET Core?

Sí, IronQR es totalmente compatible con las aplicaciones web ASP.NET Core , lo que permite a los desarrolladores integrar la generación de códigos QR en sus proyectos.

¿Es posible leer códigos QR con IronQR en .NET Core?

Por supuesto, IronQR está diseñado para leer códigos QR con gran precisión, aprovechando la tecnología de aprendizaje automático para garantizar una detección y extracción de datos precisas.

¿Qué hace que IronQR sea adecuado para los desarrolladores que buscan un generador de códigos QR?

IronQR ofrece un equilibrio entre facilidad de uso y funciones avanzadas, por lo que es una opción ideal para los desarrolladores que necesitan una biblioteca de códigos QR versátil y fiable.

¿Existen funciones avanzadas para el procesamiento de códigos QR en IronQR?

Sí, IronQR incluye funciones avanzadas como la configuración de la corrección de errores, la adición de elementos de marca y el manejo de varios formatos de códigos QR.

¿Cómo garantiza IronQR la precisión de la lectura de códigos QR?

IronQR utiliza algoritmos de aprendizaje automático para mejorar la precisión de la lectura de códigos QR, garantizando una captura de datos fiable incluso en condiciones difíciles.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me