Divulgação completa: somos a equipe de relações com desenvolvedores da Iron Software, a empresa por trás do IronQR, uma das bibliotecas nesta comparação. Dito isso, acreditamos que avaliações honestas servem melhor a todos do que marketing. Mostraremos nossa metodologia, reconheceremos nossos vieses e deixaremos o código falar por si. Executamos cada biblioteca de código QR C# através de critérios de avaliação idênticos: geração simples de QR, leitura de QR a partir de imagens, profundidade de personalização, suporte multiplataforma e custo de licenciamento. Abaixo está o resultado, uma comparação de 11 bibliotecas de código QR notáveis no ecossistema .NET, projetadas para ajudá-lo a escolher a certa para seu projeto na primeira tentativa. Veja como são três linhas de geração de QR com no Visual Studio, uma das bibliotecas que abordaremos: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Saída de Exemplo de Código QR IronQR Essa simplicidade é o básico. A verdadeira questão é o que acontece quando você precisa um código QR danificado de um scanner de armazém, incorporar um logotipo de marca, segmentar contêineres Linux ou processar milhares de códigos em um trabalho em lote. É aí que as bibliotecas divergem e onde esta comparação vale a pena. ler O TL;DR: Tabela Mestra de Comparação Antes de nos aprofundarmos, aqui está o quadro geral. Esta tabela captura as dimensões que mais importam ao selecionar uma biblioteca de QR para um projeto .NET. Biblioteca Gerar Ler Logo/Estilo Micro QR Multiplataforma Licença Downloads NuGet IronQR ✅ ✅ Potencializado por ML ✅ Completo ✅ + RMQR ✅ Win/Mac/Linux/Mobile Comercial (US$ 749+) ~56 mil QRCoder ✅ ❌ ✅ Moderado ✅ ⚠️ Parcial (System.Drawing) MIT (Grátis) ~68 milhões ZXing.Net ✅ ✅ ❌ Mínimo ❌ ⚠️ Via bindings Apache 2.0 (Grátis) ~32 milhões Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Grátis) ~4,1 milhões SkiaSharp.QrCode ✅ ❌ ✅ Formas personalizadas ❌ ✅ MIT (Grátis) ~1,2 milhão Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Comercial (US$ 999+) ~5,4 milhões Syncfusion Barcode ✅ ❌ ✅ Moderado ❌ ✅ (controle de UI) Comercial (Comunidade grátis) ~2 milhões+ Spire.Barcode ✅ ✅ ✅ Incorporação de logo ❌ ⚠️ (System.Drawing) Comercial (US$ 599+) ~450 mil IronBarcode ✅ ✅ ✅ ✅ Micro QR ✅ Win/Mac/Linux Comercial (US$ 749+) ~1,2 milhão Dynamsoft Barcode Reader ❌ ✅ Alto desempenho N/A ✅ ✅ Comercial (US$ 1.249+/ano) ~250 mil BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Grátis) ~4,5 milhões Tabela 1: Comparação mestre de 11 bibliotecas de código QR .NET em critérios de seleção essenciais. As contagens de download são aproximadas em meados de 2026. O restante deste artigo detalha cada linha, com código, compensações e avaliações honestas. Como Avaliamos Essas Bibliotecas? Avaliamos cada biblioteca em relação a sete critérios, ponderados pela frequência com que eles impulsionam as decisões de seleção no mundo real: — Ela pode criar códigos QR a partir de strings, URLs e dados estruturados (vCards, credenciais Wi-Fi)? Geração de QR — Ela pode decodificar códigos QR de imagens, digitalizações ou PDFs? Como ela lida com códigos danificados ou rotacionados? Leitura de QR — Incorporação de logo, controle de cores, estilo de forma de módulo, configuração de correção de erros Personalização — QR padrão, Micro QR, RMQR (Micro QR Retangular) Suporte ao Formato QR — Ela roda limpa em Windows, Linux, macOS e dentro de contêineres Docker sem hacks de System.Drawing? Multiplataforma — Código aberto vs. comercial, preço por desenvolvedor, descontos em pacotes Licenciamento e Custo — Qualidade da referência da API, disponibilidade de tutoriais, tamanho da comunidade, manutenção ativa Documentação e Ecossistema Todos os exemplos de código visam e usam instruções de nível superior. Onde o .NET 10 introduz melhorias relevantes, observaremos. .NET 8 (LTS) Qual Biblioteca de QR Você Deve Escolher? Um Framework de Decisão Pule os 11 perfis de biblioteca abaixo se você já conhece suas restrições. Aqui está o caminho rápido: → ou . Ambos são licenciados pela MIT. QRCoder tem mais renderizadores e auxiliares de payload; Net.Codecrete é mais leve e evita System.Drawing completamente. "Preciso gerar códigos QR gratuitamente, sem dependências." QRCoder Net.Codecrete.QrCodeGenerator → (leitura com ML, melhor precisão em códigos danificados), (grátis, comprovado, suporte mais amplo a formatos) ou (pacote empresarial, caro). "Preciso gerar E ler códigos QR." IronQR ZXing.Net Aspose.BarCode → , ou . Todos os três evitam a dependência System.Drawing que quebra implantações multiplataforma. "Estou implantando em Linux/Docker e não posso usar System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → lidera em benchmarks brutos de geração. Para desempenho de leitura, é feito sob medida para digitalização de alto rendimento. "Desempenho e pegada de memória são críticos." SkiaSharp.QrCode Dynamsoft Barcode Reader → Use o que você tem. Adicionar a biblioteca de código QR de outro fornecedor quando seu pacote já inclui uma raramente faz sentido em termos de licenciamento ou manutenção. "Já uso um pacote Aspose/Syncfusion/Iron Software." → tem guias explícitos de integração MAUI e Blazor. O MVP da Microsoft Jeff Fritz usando IronQR com Blazor, um exemplo real desse padrão exato. "Estou construindo um aplicativo móvel Blazor/MAUI com digitalização de QR." IronQR construiu um aplicativo de cartão de visita digital baseado em QR As 11 Bibliotecas de Código QR .NET Comparadas 1. IronQR — Leitura e Geração de QR Potencializadas por ML com Suporte Multiplataforma IronQR é a biblioteca dedicada de código QR da Iron Software, separada de seu produto mais amplo IronBarcode. Seu recurso de destaque é um modelo de aprendizado de máquina (baseado em ) que detecta e lê códigos QR de imagens imperfeitas, rotacionadas, parcialmente obscurecidas ou fotografadas em ângulos estranhos, muitas vezes em apenas algumas linhas de código. ONNX Também é capaz de criar objetos de código QR com facilidade, com suporte para estilizar códigos QR com imagens, adicionar cores personalizadas e salvar sua imagem QR em diferentes formatos de saída. Geração: using IronQr; using IronSoftware.Drawing; // Gerar um código QR estilizado com logo var options = new QrOptions(QrErrorCorrectionLevel.High, 20); QrCode qr = QrWriter.Write("https://example.com", options); var style = new QrStyleOptions { Dimensions = 300, Margins = 10, Color = new Color("#2E75B6"), Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("logo.png"), Width = 80, Height = 80 } }; AnyBitmap styledQr = qr.Save(style); styledQr.SaveAs("branded-qr.png"); Saída QR Gerada pelo IronQR Leitura: using IronQr; using IronSoftware.Drawing; var reader = new QrReader(); var input = new QrImageInput(AnyBitmap.FromFile("scanned-qr.jpg")); IEnumerable<QrResult> results = reader.Read(input); foreach (var result in results) Console.WriteLine($"Value: {result.Value}"); Saída de Leitura IronQR O modelo de ML é o que diferencia o IronQR de todas as outras bibliotecas desta lista. Em nossos testes, ele decodificou com sucesso códigos QR de fotos de crachás de conferência e capturas de tela de smartphone em ângulo onde ZXing.Net e leitores básicos de processamento de imagem não retornaram nada. A compensação é o tamanho do pacote, o modelo ONNX adiciona peso. Se você não precisa de leitura, IronQR.Slim é enviado sem o modelo de ML e é significativamente mais leve. Pontos Fortes: A leitura com ML lida com códigos QR danificados, rotacionados e parcialmente obscurecidos e prioriza a precisão Suporta os formatos QR Code, Micro QR e RMQR (Micro QR Retangular) API de estilo completa: cores, logos, módulos arredondados, margens Multiplataforma: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Suporte de leitura assíncrona (ReadAsync) para cargas de trabalho de servidor Salvar em vários formatos, como imagem PNG, JPG, TIFF de várias páginas e mais API amigável torna o uso fácil Limitações: Licença comercial exigida (US$ 749+ por desenvolvedor para implantação) O pacote completo é mais pesado que alternativas de código aberto devido ao modelo de ML A contagem de downloads é menor que opções maduras de código aberto, produto mais recente (lançado ~2023) NuGet Projetos apenas de geração podem não precisar da sobrecarga do ML Projetos que precisam de geração e leitura, especialmente onde as condições de escaneamento são imperfeitas (aplicativos móveis, digitalização de armazém, cenários de conferência/eventos). O demonstra o IronQR lidando com geração de código QR em tempo real com Blazor e branding personalizado. Ideal para: estudo de caso de cartão de visita QR de Jeff Fritz 2. — O Gerador de QR de Código Aberto Mais Popular QRCoder A biblioteca QRCoder é o pacote de código QR mais baixado no NuGet, com . Originalmente criado por Raffael Herrmann em 2013 e agora , é uma implementação pura em C# focada exclusivamente na de código QR (não na leitura). mais de 68 milhões de downloads mantido por Shane32 geração using QRCoder; // Gerar um código QR e salvar como bytes PNG using var qrGenerator = new QRCodeGenerator(); using var qrCodeData = qrGenerator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.H); using var pngQrCode = new PngByteQRCode(qrCodeData); byte[] qrCodeImage = pngQrCode.GetGraphic(20); File.WriteAllBytes("qrcoder-output.png", qrCodeImage); Imagem de Saída QRCoder QRCoder fornece vários renderizadores: PngByteQRCode (multiplataforma, sem dependência de System.Drawing), QRCode (baseado em System.Drawing, apenas Windows), SvgQRCode, AsciiQRCode e mais. Ele também inclui geradores de payload para dados estruturados como credenciais Wi-Fi, vCards e favoritos, o que economiza a formatação manual dessas strings. Pontos Fortes: Licença MIT, totalmente gratuita para uso comercial Mais de 68 milhões de downloads NuGet, adoção massiva pela comunidade e estabilidade comprovada Várias opções de renderizador, incluindo PngByteQRCode que evita System.Drawing Geradores de payload integrados (Wi-Fi, vCard, geolocalização, eventos de calendário) Suporte a código QR Micro Zero dependências de alvos .NET Standard Limitações: , não pode ler ou decodificar arquivos de imagem de código QR Apenas geração Alguns renderizadores (como QRCode) dependem de System.Drawing.Common, que é apenas para Windows a partir do .NET 6 Sem incorporação de logo integrada (você comporia a imagem você mesmo) Sem estilo avançado (formas de módulo, gradientes) Projetos que precisam apenas de geração de QR, especialmente quando o orçamento é zero. Se você precisar gerar códigos QR Wi-Fi ou vCards e não precisar ler códigos, QRCoder é a escolha padrão pragmática para a maioria dos desenvolvedores .NET. Ideal para: 3. — O Canivete Suíço das Bibliotecas de Código de Barras ZXing.Net ("Zebra Crossing") é a da biblioteca original ZXing Java. É uma biblioteca de código de barras de propósito geral que suporta mais de 15 formatos, QR Code, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 e mais. O suporte a QR é um subconjunto de suas capacidades mais amplas. ZXing.Net porta .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // Gerar um código QR var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // A leitura de um código QR requer um pacote de vinculação (por exemplo, ZXing.Net.Bindings.SkiaSharp) Saída ZXing.Net ZXing.Net requer pacotes de vinculação específicos da plataforma para renderização e leitura. O pacote principal fornece lógica de codificação/decodificação; você adiciona ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp ou ZXing.Net.Bindings.ImageSharp dependendo de sua plataforma de destino. Essa abordagem modular é flexível, mas adiciona complexidade de integração. Pontos Fortes: Licença Apache 2.0, gratuita para uso comercial Geração e leitura em uma única biblioteca Suporta mais de 15 formatos de código de barras além de códigos QR , comprovado, amplo conhecimento da comunidade Mais de 32 milhões de downloads NuGet Bindings disponíveis para SkiaSharp, ImageSharp, OpenCV e mais Limitações: Os recursos específicos de QR são básicos, sem incorporação de logo, sem estilos avançados A precisão da leitura em códigos QR danificados/rotacionados é moderada em comparação com soluções potencializadas por ML Pacotes de vinculação adicionam complexidade de gerenciamento de dependências O design da API mostra sua idade, menos fluente do que bibliotecas .NET modernas O ritmo de manutenção ativa diminuiu (mantido pela comunidade) Projetos que precisam de suporte para código QR e código de barras tradicional (varejo, logística) e desejam uma opção gratuita e comprovada. Se sua prioridade são recursos específicos de QR, como estilo ou leitura com ML, em vez de cobertura ampla de formatos de código de barras, uma biblioteca de QR dedicada servirá melhor. Ideal para: 4. Net.Codecrete.QrCodeGenerator — Leve e Focado em Padrões Net.Codecrete.QrCodeGenerator é uma biblioteca de geração de código QR limpa e minimalista de Manuel Bleichenbacher. É uma , focada em correção e conformidade com os padrões ( ). tradução .NET do gerador de código QR Java do Projeto Nayuki ISO/IEC 18004 using Net.Codecrete.QrCodeGenerator; var qr = QrCode.EncodeText("https://example.com", QrCode.Ecc.Medium); string svg = qr.ToSvgString(4); File.WriteAllText("output.svg", svg); Exemplo de Saída com Net.Codecrete.QrCodeGenerator Com , é bem adotado para uma biblioteca focada. Sua qualidade de destaque é zero dependências de System.Drawing — ele gera SVG, dados de caminho XAML, PNG e BMP nativamente. Isso o torna uma excelente opção para projetos .NET multiplataforma e serviços ASP.NET Core em execução em Docker. ~4,1 milhões de downloads NuGet Pontos Fortes: Licença MIT, totalmente gratuita Zero dependência de System.Drawing, verdadeiramente multiplataforma Pequena pegada, geração rápida Saída SVG e XAML integrada (útil para cenários WPF, WinUI e web) Implementação correta de todas as 40 versões de QR e todos os 4 níveis de correção de erros Extensivos projetos de exemplo (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Limitações: , sem capacidade de leitura de QR Apenas geração Sem incorporação de logo ou recursos de estilo avançados Personalização limitada em comparação com os geradores de payload do QRCoder Menos conteúdo e tutoriais da comunidade em comparação com QRCoder ou ZXing.Net Desenvolvedores que precisam de um gerador de QR pequeno, correto e multiplataforma com saída SVG e sem o fardo do System.Drawing. Se seu alvo de implantação é Linux ou Docker e você só precisa de geração, esta biblioteca merece séria consideração. Ideal para: 5. SkiaSharp.QrCode — Geração Multiplataforma de Alto Desempenho SkiaSharp.QrCode por é uma biblioteca de geração de QR focada em desempenho construída sobre SkiaSharp. Foi criada especificamente para evitar as limitações de GDI+ do System.Drawing, ao mesmo tempo em que oferece desempenho de nível nativo através da aceleração de hardware do SkiaSharp. guitarrapc using SkiaSharp.QrCode.Image; // Linha única: gerar e salvar QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Ou com configurações personalizadas var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Saída de Linha Única SkiaSharp.QrCode Os resultados de benchmark do repositório do projeto mostram que SkiaSharp.QrCode supera QRCoder e outras bibliotecas de QR .NET em velocidade e alocação de memória para tarefas de geração. Ele alcança renderização sem cópia diretamente na tela do SkiaSharp, evitando alocações de buffer intermediárias. Pontos Fortes: Licença MIT, gratuita para uso comercial Desempenho de geração de ponta (em benchmark) Alocação mínima de memória, baixa pressão de GC para cenários de alto rendimento Pronto para NativeAOT (suporte à compilação .NET Native AOT) Formas de módulo personalizadas (círculos, retângulos arredondados) para códigos QR estilizados Funciona em Windows, Linux, macOS, iOS, Android, WebAssembly Limitações: , sem leitura de QR Apenas geração Requer dependências nativas do SkiaSharp (pacotes NuGet específicos da plataforma) Comunidade menor que QRCoder ou ZXing.Net Sem geradores de payload (Wi-Fi, vCard), você formata essas strings sozinho Apenas UTF-8, sem codificação ISO-8859-2 ou Shift JIS Aplicações de servidor de alto rendimento que geram códigos QR em escala (por exemplo, sistemas de bilhetagem, geração em massa de etiquetas) onde o desempenho e a eficiência de memória são os mais importantes. Também ideal se você já usa SkiaSharp em seu projeto. Ideal para: 6. Aspose.BarCode — Pacote de Código de Barras de Nível Empresarial para Gerar Códigos QR é uma biblioteca comercial abrangente que suporta mais de 80 simbologias de código de barras, incluindo QR Code, Micro QR, Data Matrix, PDF417 e todos os formatos 1D comuns. Faz parte do ecossistema mais amplo da Aspose, usado por empresas para processamento de documentos. Aspose.BarCode para .NET using Aspose.BarCode.Generation; using Aspose.BarCode.BarCodeRecognition; // Gerar var generator = new BarcodeGenerator(EncodeTypes.QR, "https://example.com"); generator.Parameters.Barcode.XDimension.Pixels = 4; generator.Save("aspose-qr.png", BarCodeImageFormat.Png); // Ler using var reader = new BarCodeReader("aspose-qr.png", DecodeType.QR); foreach (var result in reader.ReadBarCodes()) Console.WriteLine($"Type: {result.CodeTypeName}, Text: {result.CodeText}"); Saída QR Aspose.BarCode Saída de Leitura Aspose.BarCode