Divulgação completa: Somos a equipe de relações com desenvolvedores da Iron Software, a empresa por trás da IronQR, uma das bibliotecas desta comparação. Dito isso, acreditamos que avaliações honestas servem a todos melhor do que marketing. Mostraremos nossa metodologia, reconheceremos nossos vieses e deixaremos o código falar por si. Executamos cada biblioteca C# de código QR 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 notáveis de código QR no ecossistema .NET, projetadas para ajudá-lo a escolher a certa para o 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 se justifica. ler O TL;DR: Tabela Mestra de Comparação Antes de entrarmos em detalhes, 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 QR Micro Multiplataforma Licença Downloads do NuGet IronQR ✅ ✅ Baseado em ML ✅ Completo ✅ + RMQR ✅ Win/Mac/Linux/Mobile Comercial ($749+) ~56K QRCoder ✅ ❌ ✅ Moderado ✅ ⚠️ Parcial (System.Drawing) MIT (Grátis) ~68M ZXing.Net ✅ ✅ ❌ Mínimo ❌ ⚠️ Via bindings Apache 2.0 (Grátis) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Grátis) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Formas personalizadas ❌ ✅ MIT (Grátis) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Comercial ($999+) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Moderado ❌ ✅ (controle UI) Comercial (comunidade grátis) ~2M+ Spire.Barcode ✅ ✅ ✅ Incorporação de logo ❌ ⚠️ (System.Drawing) Comercial ($599+) ~450K IronBarcode ✅ ✅ ✅ ✅ QR Micro ✅ Win/Mac/Linux Comercial ($749+) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Alto desempenho N/A ✅ ✅ Comercial ($1.249+/ano) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Grátis) ~4.5M Tabela 1: Comparação mestre de 11 bibliotecas de código QR .NET em critérios de seleção chave. Contagens de download são aproximadas a partir do início de 2026. O restante deste artigo detalha cada linha, com código, prós e contras, e avaliações honestas. Como Avaliamos Estas 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 logotipo, controle de cores, estilo de forma de módulo, configuração de correção de erros Personalização — QR Padrão, QR Micro, RMQR (QR Micro Retangular) Suporte ao Formato QR — Ela funciona perfeitamente em Windows, Linux, macOS e dentro de contêineres Docker sem hacks do System.Drawing? Multiplataforma — Código aberto vs. comercial, preços por desenvolvedor, descontos em suítes 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 têm como alvo e usam instruções de nível superior. Onde o .NET 10 introduz melhorias relevantes, observamos isso. .NET 8 (LTS) Qual Biblioteca 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 totalmente o System.Drawing. "Preciso gerar códigos QR gratuitamente sem dependências." QRCoder Net.Codecrete.QrCodeGenerator → (leitura baseada em ML, melhor precisão em códigos danificados), (gratuito, comprovado em batalha, maior suporte a formatos) ou (suíte 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 no Linux/Docker e não posso usar System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → lidera em benchmarks de geração bruta. 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 uma biblioteca QR de outro fornecedor quando sua suíte já inclui uma raramente faz sentido em termos de licenciamento ou manutenção. "Já uso uma suíte 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 Blazor/MAUI móvel com digitalização 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 Baseada em 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 poucas linhas de código. ONNX Ele 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 logotipo 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 smartphones anguladas onde ZXing.Net e leitores básicos de processamento de imagem não retornaram nada. A desvantagem é 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 baseada em ML lida com códigos QR danificados, rotacionados e parcialmente obscurecidos e prioriza a precisão Suporta formatos QR Code, QR Micro e RMQR (QR Micro Retangular) API de estilo completa: cores, logotipos, 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 Salva em vários formatos, como imagem PNG, JPG, TIFF de várias páginas e mais API amigável facilita o uso Limitações: Licença comercial necessária (a partir de $749 por desenvolvedor para implantação) O pacote completo é mais pesado do que as alternativas de código aberto devido ao modelo de ML A é menor do que as opções maduras de código aberto, produto mais novo (lançado ~2023) contagem de downloads do NuGet Projetos apenas de geração podem não precisar da sobrecarga de ML Projetos que precisam de geração e leitura, especialmente onde as condições de digitalização são imperfeitas (aplicativos móveis, digitalização de armazém, cenários de conferência/evento). O demonstra o IronQR lidando com a geração de QR em tempo real com Blazor e marca personalizada. Ideal para: estudo de caso do 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 com mais downloads 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 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); Saída QRCoder Imagem QRCoder fornece vários renderizadores: PngByteQRCode (multiplataforma, sem dependência 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 marcadores, 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 no NuGet, adoção massiva pela comunidade e estabilidade comprovada Várias opções de renderizador, incluindo um 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 logotipo integrada (você teria que compor a imagem) 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") é o da biblioteca original ZXing em Java. É uma biblioteca de código de barras de uso 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 port para .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 aumenta a complexidade da 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 em batalha, amplo conhecimento da comunidade Mais de 32 milhões de downloads no NuGet Bindings disponíveis para SkiaSharp, ImageSharp, OpenCV e mais Limitações: Recursos específicos de QR são básicos, sem incorporação de logotipo, sem estilo avançado A precisão da leitura em códigos QR danificados/rotacionados é moderada em comparação com soluções baseadas em ML Os 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 tanto para código QR quanto para 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 baseada em 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 , focado em correção e conformidade com padrões ( ). tradução para .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 do System.Drawing — ele gera SVG, dados de caminho XAML, PNG e BMP nativamente. Isso o torna uma excelente escolha para projetos .NET multiplataforma e serviços ASP.NET Core em execução em Docker. ~4.1 milhões de downloads no NuGet Pontos Fortes: Licença MIT, totalmente gratuita Zero dependência de System.Drawing, verdadeiramente multiplataforma Pegada pequena, 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 Projetos de exemplo extensos (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Limitações: , sem capacidade de leitura de QR Apenas geração Sem incorporação de logotipo ou recursos avançados de estilo Personalização limitada em comparação com os geradores de payload do QRCoder Menos conteúdo comunitário e tutoriais 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 bagagem System.Drawing. Se seu alvo de implantação for Linux ou Docker e você precisar apenas 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 GDI+ do System.Drawing, ao mesmo tempo que oferece desempenho em 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 SkiaSharp.QrCode Linha Única Os resultados de benchmark do repositório do projeto mostram SkiaSharp.QrCode superando 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 AOT nativa .NET) 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 SkiaSharp (pacotes NuGet específicos da plataforma) Comunidade menor do que QRCoder ou ZXing.Net Sem geradores de payload (Wi-Fi, vCard), você formata essas strings manualmente 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á estiver usando SkiaSharp em seu projeto. Ideal para: 6. Aspose.BarCode — Suíte 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