Gerador de QR Codes em C# (.NET) com a biblioteca 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): a poderosa ferramenta QRCoder

\n

Os QR Codes se tornaram parte essencial da web moderna e dos aplicativos móveis. Eles são usados para acesso rápido a links, transmissão de dados de contato, autenticação, pagamento e muito mais. Se você está desenvolvendo uma aplicação na plataforma .NET (C#), uma das melhores soluções para gerar QR Codes é a biblioteca QRCoder. Esta é uma biblioteca leve, de alto desempenho e totalmente gerenciada, de código aberto, que não requer dependências externas (como ImageMagick ou ZXing).

\n\n

O que é QRCoder?

\n

QRCoder é uma implementação pura em C# do padrão de QR Code (ISO/IEC 18004). Ela permite criar QR Codes de várias versões (de 1 a 40), definir o nível de correção de erros (L, M, Q, H), incorporar logotipos e exportar o resultado nos formatos PNG, BMP, JPG, GIF, bem como SVG ou XAML (através de módulos adicionais). A biblioteca funciona tanto com .NET Framework (a partir da versão 4.6) quanto com .NET Core / .NET 5/6/7/8, tornando-a uma escolha versátil para aplicações web (ASP.NET), desktop (WPF, WinForms) e projetos de console.

\n\n

Instalação e configuração

\n

A instalação do QRCoder é feita através do gerenciador de pacotes NuGet. Execute um dos seguintes comandos:

\n
// Via Package Manager Console\nInstall-Package QRCoder\n\n// Via .NET CLI\ndotnet add package QRCoder
\n

Após instalar a biblioteca, você pode começar imediatamente a gerar QR Codes. Nenhuma configuração adicional é necessária.

\n\n

Exemplo básico: geração de QR Code com texto

\n

A maneira mais simples é criar um QR Code contendo uma string arbitrária (URL, texto, número de telefone). O exemplo abaixo gera um QR Code e o salva em um arquivo:

\n
using QRCoder;\nusing System.Drawing;\nusing System.Drawing.Imaging;\n\nclass Program\n{\n    static void Main()\n    {\n        // 1. Criar o gerador\n        QRCodeGenerator qrGenerator = new QRCodeGenerator();\n\n        // 2. Criar os dados do QR Code (texto, nível de correção)\n        QRCodeData qrCodeData = qrGenerator.CreateQrCode(\n            "https://pythonlib.ru",\n            QRCodeGenerator.ECCLevel.Q   // Nível Q — 25% de recuperação\n        );\n\n        // 3. Criar a representação gráfica\n        QRCode qrCode = new QRCode(qrCodeData);\n\n        // 4. Renderizar em Bitmap (tamanho do módulo 20 pixels)\n        Bitmap qrCodeImage = qrCode.GetGraphic(20);\n\n        // 5. Salvar em arquivo\n        qrCodeImage.Save("qrcode.png", ImageFormat.Png);\n\n        Console.WriteLine("QR Code criado: qrcode.png");\n    }\n}
\n

Como resultado, você obterá um arquivo qrcode.png com um QR Code preto e branco. O nível de correção Q permite recuperar até 25% dos dados danificados — ideal para a maioria das tarefas.

\n\n

QR Code com logotipo (branding)

\n

O QRCoder suporta a incorporação de uma imagem no centro do QR Code. Isso é útil para adesivos de marca ou cartões de visita. Importante: o logotipo não deve cobrir mais de 30% da área do código, caso contrário, a leitura se tornará impossível.

\n
using 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    // Carregar o logotipo\n    Image logo = Image.FromFile(logoPath);\n\n    // Gerar com logotipo (tamanho do módulo 20, cor de fundo branca, logotipo centralizado)\n    Bitmap result = qrCode.GetGraphic(20, Color.Black, Color.White, logo);\n    return result;\n}
\n\n

Personalização da aparência: cor e tamanho

\n

Você pode facilmente alterar as cores do QR Code para adaptá-lo ao design da sua aplicação. O método GetGraphic aceita os seguintes parâmetros:

\n
    \n
  • pixelsPerModule — tamanho de ca

Recommendations