Gerador de QR Codes em C# (.NET) com QRCoder

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Gerador de QR Codes em C# (.NET) com a biblioteca QRCoder



Os QR Codes se tornaram uma parte essencial da web moderna e dos aplicativos móveis. Eles são usados para transferência rápida de links, dados de contato, senhas de Wi-Fi, detalhes de pagamento e muito mais. No ecossistema C# (.NET), uma das bibliotecas mais populares e fáceis de usar para gerar QR Codes é a QRCoder. Neste artigo, vamos detalhar como instalar a biblioteca, criar um QR Code simples e complexo, e salvá-lo em vários formatos (PNG, SVG).



O que é QRCoder?



QRCoder é uma biblioteca leve e de alto desempenho de código aberto para .NET (suporta .NET Framework 4.6+ e .NET Core/.NET 5+). Ela não requer dependências externas, exceto a biblioteca padrão System.Drawing para imagens raster. Principais recursos:

  • Geração de QR Codes a partir de texto, URL, contatos (vCard), configurações de Wi-Fi, SMS, e-mail e outros formatos.
  • Configuração do nível de correção de erros (L, M, Q, H).
  • Seleção da versão do QR Code (tamanho da matriz).
  • Exportação para PNG, BMP, SVG, XAML, EPS, PostScript e HTML.
  • Suporte a cores, fundo, transparência e logotipos personalizados.


Instalação no projeto C#



A instalação da biblioteca QRCoder é feita através do NuGet Package Manager. Abra o console do gerenciador de pacotes ou use o .NET CLI:



dotnet add package QRCoder


Ou através do Package Manager Console:



Install-Package QRCoder


Exemplo básico — geração de um QR Code simples



Vamos criar um aplicativo de console que gera um QR Code para a string "https://pythonlib.ru" e o salva em um arquivo 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);

// Geração da imagem (pixels)Bitmap qrCodeImage = qrCode.GetGraphic(20);

// Salvando no arquivoqrCodeImage.Save("qrcode.png", System.Drawing.Imaging.ImageFormat.Png);

Console.WriteLine("QR Code criado: qrcode.png");


Neste exemplo:

  • ECCLevel.Q — nível de correção de erros (25% dos dados podem ser danificados).
  • GetGraphic(20) — tamanho de um módulo (quadrado) em pixels.
  • O resultado é um PNG preto e branco.


Personalização da aparência — cor, logotipo, SVG



O QRCoder permite personalizar flexivelmente a aparência do QR Code. Vamos considerar um exemplo com fundo colorido, módulos escuros e um 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);

// Configuração de corColor darkColor = Color.FromArgb(52, 73, 94); // azul escuroColor lightColor = Color.FromArgb(236, 240, 241); // cinza claro

// Geração com logotipo (o logotipo deve estar no 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("QR Code colorido com logotipo salvo.");


Observe: para funcionar corretamente com o logotipo, recomenda-se usar o nível de correção de erros ECCLevel.Q ou ECCLevel.H, pois o logotipo cobre parte dos dados.



Exportação para SVG (formato vetorial)



Se você precisar de um QR Code escalável (por exemplo, para impressão), use o renderizador SVG. Para isso, instale o pacote adicional QRCoder.Svg:



                    

Recommendations