Generador de códigos QR en C# (.NET): la potente herramienta QRCoder
\nLos códigos QR se han convertido en una parte esencial de la web moderna y las aplicaciones móviles. Se utilizan para acceder rápidamente a enlaces, transferir datos de contacto, autenticación, pagos y mucho más. Si está desarrollando una aplicación en la plataforma .NET (C#), una de las mejores soluciones para generar códigos QR es la librería QRCoder. Es una librería ligera, de alto rendimiento y completamente administrada, de código abierto, que no requiere dependencias externas (como ImageMagick o ZXing).
\n\n¿Qué es QRCoder?
\nQRCoder es una implementación pura en C# del estándar de códigos QR (ISO/IEC 18004). Permite crear códigos QR de varias versiones (de la 1 a la 40), establecer el nivel de corrección de errores (L, M, Q, H), incrustar logotipos y exportar el resultado en formatos PNG, BMP, JPG, GIF, así como SVG o XAML (a través de módulos adicionales). La librería funciona tanto con .NET Framework (desde la versión 4.6) como con .NET Core / .NET 5/6/7/8, lo que la convierte en una opción universal para aplicaciones web (ASP.NET), de escritorio (WPF, WinForms) y proyectos de consola.
\n\nInstalación y configuración
\nLa instalación de QRCoder se realiza a través del administrador de paquetes NuGet. Ejecute uno de los siguientes comandos:
\n// A través de Package Manager Console\nInstall-Package QRCoder\n\n// A través de .NET CLI\ndotnet add package QRCoder\nDespués de instalar la librería, puede comenzar inmediatamente a generar códigos QR. No se requiere ninguna configuración adicional.
\n\nEjemplo básico: generación de un código QR con texto
\nLa forma más sencilla es crear un código QR que contenga una cadena de texto arbitraria (URL, texto, número de teléfono). El siguiente ejemplo genera un código QR y lo guarda en un archivo:
\nusing QRCoder;\nusing System.Drawing;\nusing System.Drawing.Imaging;\n\nclass Program\n{\n static void Main()\n {\n // 1. Creamos el generador\n QRCodeGenerator qrGenerator = new QRCodeGenerator();\n\n // 2. Creamos los datos del código QR (texto, nivel de corrección)\n QRCodeData qrCodeData = qrGenerator.CreateQrCode(\n "https://pythonlib.ru",\n QRCodeGenerator.ECCLevel.Q // Nivel Q — 25% de recuperación\n );\n\n // 3. Creamos la representación gráfica\n QRCode qrCode = new QRCode(qrCodeData);\n\n // 4. Renderizamos en Bitmap (tamaño del módulo 20 píxeles)\n Bitmap qrCodeImage = qrCode.GetGraphic(20);\n\n // 5. Guardamos en un archivo\n qrCodeImage.Save("qrcode.png", ImageFormat.Png);\n\n Console.WriteLine("Código QR creado: qrcode.png");\n }\n}\nComo resultado, obtendrá un archivo qrcode.png con un código QR en blanco y negro. El nivel de corrección Q permite recuperar hasta el 25% de los datos dañados, óptimo para la mayoría de las tareas.
Código QR con logotipo (branding)
\nQRCoder admite la incrustación de una imagen en el centro del código QR. Esto es útil para pegatinas de marca o tarjetas de presentación. Importante: el logotipo no debe cubrir más del 30% del área del código, de lo contrario, la lectura se volverá imposible.
\nusing QRCoder;\nusing System.Drawing;\n\npublic Bitmap GenerateQrWithLogo(string text, string logoPath)\n{\n QRCodeGenerator qrGenerator = new QRCodeGenerator();\n QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);\n QRCode qrCode = new QRCode(qrCodeData);\n\n // Cargamos el logotipo\n Image logo = Image.FromFile(logoPath);\n\n // Generamos con logotipo (tamaño del módulo 20, color de fondo blanco, logotipo centrado)\n Bitmap result = qrCode.GetGraphic(20, Color.Black, Color.White, logo);\n return result;\n}\n\nPersonalización de la apariencia: color y tamaño
\nPuede cambiar fácilmente los colores del código QR para adaptarlo al diseño de su aplicación. El método GetGraphic acepta parámetros:
- \n
- pixelsPerModule — tamaño de un
También en la biblioteca
Tokens JWT en Java: Guía completa para trabajar con JSON Web Tokens
Procesamiento de Markdown en Node.js: bibliotecas marked, showdown y remarkable
Migraciones de bases de datos en Node.js: Resumen de herramientas y ejemplos
Guía completa de Drogon para C++ con ejemplos