Generador de códigos QR en C# (.NET) con QRCoder

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Generador de códigos QR en C# (.NET) con la librería QRCoder



Los códigos QR se han convertido en una parte esencial de la web moderna y las aplicaciones móviles. Se utilizan para la transmisión rápida de enlaces, datos de contacto, contraseñas Wi-Fi, datos de pago y mucho más. En el ecosistema de C# (.NET), una de las librerías más populares y fáciles de usar para generar códigos QR es QRCoder. En este artículo, analizaremos en detalle cómo instalar la librería, crear un código QR simple y complejo, y guardarlo en varios formatos (PNG, SVG).



¿Qué es QRCoder?



QRCoder es una librería ligera y de alto rendimiento de código abierto para .NET (compatible con .NET Framework 4.6+ y .NET Core/.NET 5+). No requiere dependencias externas, excepto la librería estándar System.Drawing para imágenes rasterizadas. Las principales características son:

  • Generación de códigos QR a partir de texto, URL, contactos (vCard), configuraciones Wi-Fi, SMS, correo electrónico y otros formatos.
  • Configuración del nivel de corrección de errores (L, M, Q, H).
  • Selección de la versión del código QR (tamaño de la matriz).
  • Exportación a PNG, BMP, SVG, XAML, EPS, PostScript y HTML.
  • Soporte para colores, fondo, transparencia y logotipos personalizados.


Instalación en un proyecto C#



La instalación de la librería QRCoder se realiza a través del Administrador de paquetes NuGet. Abra la consola del administrador de paquetes o use la CLI de .NET:



dotnet add package QRCoder


O a través de la Consola del Administrador de paquetes:



Install-Package QRCoder


Ejemplo básico: generación de un código QR simple



Creemos una aplicación de consola que genere un código QR para la cadena "https://pythonlib.ru" y lo guarde en un archivo PNG.



using QRCoder;using System.Drawing;

string url = "https://pythonlib.ru";QRCodeGenerator qrGenerator = new QRCodeGenerator();QRCodeData qrCodeData = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);QRCode qrCode = new QRCode(qrCodeData);

// Generación de la imagen (píxeles)Bitmap qrCodeImage = qrCode.GetGraphic(20);

// Guardar en archivoqrCodeImage.Save("qrcode.png", System.Drawing.Imaging.ImageFormat.Png);

Console.WriteLine("Código QR creado: qrcode.png");


En este ejemplo:

  • ECCLevel.Q — nivel de corrección de errores (el 25% de los datos pueden estar dañados).
  • GetGraphic(20) — tamaño de un módulo (cuadrado) en píxeles.
  • El resultado es un PNG en blanco y negro.


Personalización de la apariencia: color, logotipo, SVG



QRCoder permite personalizar de forma flexible la apariencia del código QR. Veamos un ejemplo con fondo de color, módulos oscuros y un logotipo incorporado.



using QRCoder;using System.Drawing;

string data = "https://pythonlib.ru";QRCodeGenerator qrGenerator = new QRCodeGenerator();QRCodeData qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);QRCode qrCode = new QRCode(qrCodeData);

// Configuración de colorColor darkColor = Color.FromArgb(52, 73, 94); // azul oscuroColor lightColor = Color.FromArgb(236, 240, 241); // gris claro

// Generación con logotipo (el logotipo debe estar en el centro)Bitmap logo = new Bitmap("logo.png");Bitmap qrCodeImage = qrCode.GetGraphic(20, darkColor, lightColor, logo);

qrCodeImage.Save("qrcode_color.png", System.Drawing.Imaging.ImageFormat.Png);Console.WriteLine("Código QR de color con logotipo guardado.");


Tenga en cuenta: para un funcionamiento correcto con el logotipo, se recomienda usar el nivel de corrección de errores ECCLevel.Q o ECCLevel.H, ya que el logotipo cubre parte de los datos.



Exportación a SVG (formato vectorial)



Si necesita un código QR escalable (por ejemplo, para impresión), use el renderizador SVG. Para ello, instale el paquete adicional QRCoder.Svg:



                    

Recommendations