Saltar al pie de página
USANDO IRONQR

Generador de Códigos QR .NET Core: Leer y generar códigos QR con sólo unas pocas líneas de código

Si está creando cualquier solución web o empresarial moderna en .NET Core, descubrirá que el manejo de códigos QR, para inventario, pago o autenticación, es a menudo un requisito básico. No querrás perder el tiempo peleándote con código complejo; desea una biblioteca rápida y fiable que simplemente funcione. IronQR proporciona una potente solución todo en uno para el generador de códigos QR .NET Core. Gestiona desde la creación básica de QR hasta funciones avanzadas como la alta corrección de errores y las imágenes personalizadas, ayudándote a acelerar el desarrollo.

¿Listo para simplificar sus operaciones con códigos QR? Inicie su prueba gratuita hoy mismo y compruebe lo fácil que es.

NuGet Instalar con NuGet

PM >  Install-Package IronQR

Echa un vistazo a IronQR en NuGet para una instalación rápida. Con más de 10 millones de descargas, está transformando el desarrollo de PDF con C#. También puede descargar el DLL.

¿Cómo instalar la biblioteca de códigos QR?

La instalación de IronQR a través del gestor de paquetes NuGet es una operación sencilla que se realiza en cuestión de segundos. Abra Visual Studio, vaya a Herramientas > Gestor de paquetes NuGet y busque "IronQR" Haz clic en el botón de instalación para añadir el paquete NuGet a tu proyecto. La biblioteca tiene dependencias NuGet mínimas y es compatible con proyectos multiplataforma en Windows, macOS y Linux.

Install-Package IronQR

IronQR es una implementación de .NET compatible con .NET Core 6, 7, 8 y 9, así como con .NET Framework 4.6.2+. Para proyectos multiplataforma, la integración de SkiaSharp permite el procesamiento de imágenes entre plataformas. La biblioteca es compatible con aplicaciones web ASP.NET Core, aplicaciones de consola y soluciones de escritorio sin necesidad de configuración adicional. Una vez instalado, el código fuente incluye automáticamente todos los métodos de extensión necesarios para las operaciones QR.

¿Cómo puedo leer un código QR básico a partir de una imagen?

Lectura de datos de código QR a partir de imágenes PNG u otros formatos requiere sólo unas pocas líneas de código. La clase QrReader utiliza un modelo avanzado de aprendizaje automático de códigos QR que evalúa automáticamente la calidad de la imagen y aplica una detección óptima del modo de segmento para una descodificación precisa.

using IronQr;
using IronSoftware.Drawing;
namespace Examples
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load image containing QR code
            var inputBmp = AnyBitmap.FromFile("qr-sample.png");
            // Create QrImageInput from the bitmap
            QrImageInput imageInput = new QrImageInput(inputBmp);
            // Initialize QR Reader with ML model
            QrReader reader = new QrReader();
            // Read and decode all QR codes in the image
            IEnumerable<QrResult> results = reader.Read(imageInput);
            // Output decoded text strings
            foreach (var qrCode in results)
            {
                Console.WriteLine($"QR Code Value: {qrCode.Value}");
                Console.WriteLine($"URL: {qrCode.Url}");
            }
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
namespace Examples
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load image containing QR code
            var inputBmp = AnyBitmap.FromFile("qr-sample.png");
            // Create QrImageInput from the bitmap
            QrImageInput imageInput = new QrImageInput(inputBmp);
            // Initialize QR Reader with ML model
            QrReader reader = new QrReader();
            // Read and decode all QR codes in the image
            IEnumerable<QrResult> results = reader.Read(imageInput);
            // Output decoded text strings
            foreach (var qrCode in results)
            {
                Console.WriteLine($"QR Code Value: {qrCode.Value}");
                Console.WriteLine($"URL: {qrCode.Url}");
            }
        }
    }
}
$vbLabelText   $csharpLabel

Introducir código QR

QR Code Generator .NET Core: Lee y Genera Códigos QR con Sólo unas Líneas de Código: Imagen 1 - Introducir Código QR

Resultado

Generador de código QR .NET Core: Lea y genere códigos QR con sólo unas pocas líneas de código: Imagen 2 - Ejemplo de escaneo de Código QR

El método QrReader.Read() procesa el texto de entrada de los símbolos QR y devuelve resultados que contienen los datos descodificados. IronQR permite codificar varios tipos de datos, como URL, números de teléfono y cadenas de texto. La biblioteca puede procesar matrices de bytes directamente o cargar desde rutas de archivos de extensión, lo que hace que la integración sea flexible para cualquier arquitectura de proyecto.

¿Cómo extraer datos avanzados de códigos QR?

Más allá de la lectura básica de códigos QR, IronQR expone coordenadas, módulos sin procesar y segmentos de datos estructurados de cada código escaneado. Esto resulta esencial para las aplicaciones que requieren un posicionamiento preciso de los símbolos QR o el procesamiento simultáneo de varios códigos.

using IronQr;
using IronSoftware.Drawing;
namespace Examples
{
    class AdvancedReader
    {
        static void Main(string[] args)
        {
            var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
            QrImageInput imageInput = new QrImageInput(inputBmp);
            QrReader reader = new QrReader();
            IEnumerable<QrResult> results = reader.Read(imageInput);
            foreach (var qrCode in results)
            {
                // Access QR code data and URL
                Console.WriteLine($"Data: {qrCode.Value}");
                // Get coordinate positions (int x, int y)
                foreach (PointF point in qrCode.Points)
                {
                    Console.WriteLine($"Position: {point.X}, {point.Y}");
                }
            }
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
namespace Examples
{
    class AdvancedReader
    {
        static void Main(string[] args)
        {
            var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
            QrImageInput imageInput = new QrImageInput(inputBmp);
            QrReader reader = new QrReader();
            IEnumerable<QrResult> results = reader.Read(imageInput);
            foreach (var qrCode in results)
            {
                // Access QR code data and URL
                Console.WriteLine($"Data: {qrCode.Value}");
                // Get coordinate positions (int x, int y)
                foreach (PointF point in qrCode.Points)
                {
                    Console.WriteLine($"Position: {point.X}, {point.Y}");
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

QR de entrada

Generador de código QR .NET Core: Lee y Genera Códigos QR con Sólo unas Líneas de Código: Imagen 3 - Introducir código QR

Resultados de la lectura avanzada de QR

Generador de código QR .NET Core: Lea y genere códigos QR con unas pocas líneas de código: Imagen 4 - Resultados para la extracción avanzada de datos QR

El objeto QrResult proporciona acceso a segmentos de datos, coordenadas de ubicación y valores descodificados. Esto permite la generación de superposiciones, flujos de trabajo de procesamiento de documentos y aplicaciones sensibles al diseño. IronQR puede procesar imágenes personalizadas con logotipos, códigos dañados o entradas de baja resolución gracias a su detección basada en ML.

¿Cómo afecta el nivel de corrección de errores a la lectura de códigos QR?

La corrección de errores es fundamental para la fiabilidad de los códigos QR. IronQR admite todos los niveles estándar de corrección de errores (L, M, Q, H), y los niveles superiores permiten una mayor recuperación de datos de códigos dañados u oscurecidos. El número máximo de versión permitido determina la capacidad; los códigos QR de la versión 40 almacenan hasta 7.089 caracteres numéricos.

Al generar códigos QR, especificar el nivel de corrección de errores garantiza que el resultado resista las condiciones de escaneado del mundo real:

using IronQr;
using IronSoftware.Drawing;
// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
$vbLabelText   $csharpLabel

Resultado

Generador de código QR .NET Core: Lee y Genera Códigos QR con Sólo Unas Líneas de Código: Imagen 5 - Código QR generado con alto nivel de corrección de errores

El nivel de corrección de errores también influye en la posibilidad de añadir segmentos ECI o imágenes de logotipos sin que se pierda la legibilidad. Una mayor corrección de errores permite añadir colores y marcas personalizados sin sacrificar la fiabilidad.

¿Cómo puedo generar códigos QR con caracteres internacionales?

IronQR admite codificación que codifica texto Unicode japonés mediante el modo Kanji, lo que lo hace ideal para aplicaciones internacionales. La biblioteca selecciona automáticamente el modo de segmento óptimo para contenido mixto numérico, alfanumérico o Unicode. También puede configurar segmentos de datos manualmente o añadir segmentos ECI para conjuntos de caracteres específicos.

using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library handles kanji mode automatically
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("こんにちは世界");
// The library handles kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
$vbLabelText   $csharpLabel

Salida de código QR

Generador de código QR .NET Core: Lee y Genera Códigos QR con Sólo unas Líneas de Código: Imagen 6 - Código QR de salida

Esta detección automática de la codificación elimina los parámetros manuales para la configuración del juego de caracteres. El proceso de generación de códigos QR maneja el texto Unicode japonés sin problemas, admitiendo todos los rangos Unicode, incluidos los caracteres del modo Kanji.

¿Cómo se utilizan los generadores de carga útil para datos estructurados?

IronQR admite generadores de carga útil que crean datos de código QR con el formato adecuado para casos de uso comunes como credenciales WiFi, información de contacto y eventos de calendario. Esto simplifica la creación de códigos QR con información estructurada en lugar de texto sin formato.

using IronQr;
using IronSoftware.Drawing;
// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully!");
using IronQr;
using IronSoftware.Drawing;
// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully!");
$vbLabelText   $csharpLabel

Código QR creado

Generador de código QR .NET Core: Lee y Genera Códigos QR con Sólo Unas Líneas de Código: Imagen 7 - Código QR creado a partir de una URL

El generador de código se encarga de generar imágenes PNG con dimensiones configurables. La biblioteca QRCoder ofrece una funcionalidad similar a la de una biblioteca de código abierto .NET con una licencia MIT permisiva, aunque IronQR proporciona capacidades de lectura basadas en ML mejoradas y soporte comercial.

Conclusión

IronQR no es sólo para leer imágenes estáticas perfectas; brilla cuando hay que escanear códigos borrosos o dañados en entornos reales. La compatibilidad de la biblioteca con funciones avanzadas opcionales, como la configuración de patrones de máscara, el estilo personalizado y la codificación internacional de caracteres, la hace adecuada para aplicaciones empresariales que requieren fiabilidad y flexibilidad.

Desde generar códigos QR hasta leer símbolos QR complejos a partir de varios formatos de imagen, IronQR gestiona el flujo de trabajo completo con un código mínimo. La sencilla documentación de la API y los extensos tutoriales ayudan a los desarrolladores a implementar rápidamente la funcionalidad de QR.

Compra una licencia IronQR para desbloquear todas las capacidades para el despliegue en producción, o explora ejemplos de código adicionales para ver la biblioteca en acción.

Preguntas Frecuentes

¿Qué es IronQR?

IronQR es una completa biblioteca para el manejo de códigos QR en .NET Core. Simplifica el proceso de lectura y generación de códigos QR con características como la detección de potencia ML, alta corrección de errores y soporte multiplataforma.

¿Cómo puede IronQR ayudar en mis proyectos .NET Core?

IronQR ayuda a sus proyectos .NET Core ofreciéndole una solución rápida y fiable para la generación y lectura de códigos QR, ahorrándole la molestia de una codificación compleja. Lo gestiona todo, desde la creación básica de QR hasta las funciones avanzadas.

¿Cuáles son las funciones avanzadas de IronQR?

IronQR incluye funciones avanzadas, como altos niveles de corrección de errores, detección potenciada por ML y compatibilidad con imágenes personalizadas, que pueden mejorar significativamente las capacidades de código QR de su aplicación.

¿Es IronQR compatible con el desarrollo multiplataforma?

Sí, IronQR está diseñado con compatibilidad multiplataforma, lo que lo hace ideal para soluciones web y empresariales modernas creadas en .NET Core.

¿Puede IronQR manejar imágenes de códigos QR personalizadas?

Por supuesto, IronQR permite la integración de imágenes personalizadas en los códigos QR, lo que proporciona flexibilidad para la personalización y la creación de marcas en sus aplicaciones.

¿Cómo mejora IronQR el proceso de lectura de códigos QR?

IronQR mejora el proceso de lectura de códigos QR gracias a su detección ML, que garantiza un escaneado preciso y rápido incluso en condiciones difíciles.

¿Admite IronQR una alta corrección de errores para los códigos QR?

Sí, IronQR admite una alta corrección de errores, lo que permite escanear correctamente los códigos QR aunque estén parcialmente dañados u oscurecidos.

¿Es fácil integrar IronQR en las aplicaciones .NET Core existentes?

IronQR está diseñado para integrarse fácilmente en cualquier aplicación .NET Core, proporcionando una experiencia fluida para añadir funcionalidades de código QR sin una refactorización extensa.

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