Como gerar códigos QR e códigos de barras em C#

Generate QR Codes in C# - Complete Tutorial for .NET Developers

This article was translated from English: Does it need improvement?
Translated
View the article in English

Precisa gerar códigos QR em sua aplicação C#? Este tutorial mostra exatamente como criar, personalizar e verificar códigos QR usando o IronBarcode—desde implementações simples com uma linha até recursos avançados como incorporação de logotipos e codificação de dados binários.

Quer você esteja construindo sistemas de inventário, plataformas de bilhetagem de eventos ou soluções de pagamento sem contato, você aprenderá como implementar funcionalidades de código QR de nível profissional em suas aplicações .NET.

Início Rápido: Criação de Código QR com Uma Linha usando IronBarcode

Pronto para gerar um código QR rapidamente? Aqui está como você pode usar a API QRCodeWriter do IronBarcode para produzir um código QR com apenas uma linha de código—personalização é opcional, mas poderosa.

  1. Instale IronBarcode com o Gerenciador de Pacotes NuGet

    PM > Install-Package BarCode
  2. Copie e execute este trecho de código.

    var qr = QRCodeWriter.CreateQrCode("https://ironsoftware.com/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SaveAsPng("MyQR.png");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita

    arrow pointer

How Do I Install a QR Code Library in C#?

Instale o IronBarcode usando o Gerenciador de Pacotes NuGet com este comando simples:

Install-Package BarCode

Instalar via NuGet

Alternativamente, baixe o DLL do IronBarcode diretamente e adicione-o como referência ao seu projeto.

Importar Namespaces Requeridos

Adicione esses namespaces para acessar os recursos de geração de código QR do IronBarcode:

using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
using IronBarCode;
using System;
using System.Drawing;
using System.Linq;
$vbLabelText   $csharpLabel

How Can I Create a Simple QR Code in C#?

Gere um código QR com apenas uma linha de código usando o método CreateQrCode do IronBarcode:

using IronBarCode;

// Generate a QR code with text content
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("MyQR.png");
using IronBarCode;

// Generate a QR code with text content
var qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium);
qrCode.SaveAsPng("MyQR.png");
$vbLabelText   $csharpLabel

O método CreateQrCode aceita três parâmetros:

  • Conteúdo de texto: Os dados a serem codificados (suporta URLs, texto ou qualquer dado de string)
  • Tamanho: Dimensões em pixels para o código QR quadrado (500x500 neste exemplo)
  • Correção de erro: Determina a legibilidade em condições subótimas (Baixa, Média, Quartil ou Alta)

Níveis mais altos de correção de erro permitem que códigos QR permaneçam legíveis mesmo quando parcialmente danificados ou obstruídos, embora resultem em padrões mais densos com mais módulos de dados.

Código QR padrão gerado com IronBarcode em C# Um código QR básico contendo o texto "hello world", gerado em 500x500 pixels com correção de erro média

Como Adicionar um Logotipo ao Meu Código QR?

A incorporação de logotipos em códigos QR melhora o reconhecimento da marca enquanto mantém a capacidade de escaneamento. O IronBarcode posiciona e dimensiona automaticamente os logotipos para preservar a integridade do código QR:

using IronBarCode;
using IronSoftware.Drawing;

// Load logo image
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");

// Create QR code with embedded logo
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");
using IronBarCode;
using IronSoftware.Drawing;

// Load logo image
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");

// Create QR code with embedded logo
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Customize appearance
myQRCodeWithLogo.ResizeTo(500, 500).SetMargins(10).ChangeBarCodeColor(Color.DarkGreen);

// Save the branded QR code
myQRCodeWithLogo.SaveAsPng("myQRWithLogo.png");
$vbLabelText   $csharpLabel

O método CreateQrCodeWithLogo lida inteligentemente com a colocação do logotipo por:

  • Dimensioando automaticamente o logotipo para manter a legibilidade do código QR
  • Posicionando-o dentro da zona silenciosa para evitar a corrupção de dados
  • Preservando as cores originais do logotipo ao alterar as cores do código QR

Esta abordagem garante que seus códigos QR de marca continuem totalmente funcionais em todos os dispositivos de escaneamento e aplicações.

Código QR com logotipo do Visual Studio embutido Código QR apresentando o logotipo do Visual Studio, demonstrando o dimensionamento e posicionamento automático de logotipos do IronBarcode

Como Exportar Códigos QR para Diferentes Formatos?

IronBarcode suporta múltiplos formatos de exportação para diferentes casos de uso. Exporte seus códigos QR como imagens, PDFs ou arquivos HTML:

using IronBarCode;
using System.Drawing;

// Create QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen);

// Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");      // PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); // Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png");       // PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg");      // JPEG image
using IronBarCode;
using System.Drawing;

// Create QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myQRCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply custom styling
myQRCodeWithLogo.ChangeBarCodeColor(Color.DarkGreen);

// Export to multiple formats
myQRCodeWithLogo.SaveAsPdf("MyQRWithLogo.pdf");      // PDF document
myQRCodeWithLogo.SaveAsHtmlFile("MyQRWithLogo.html"); // Standalone HTML
myQRCodeWithLogo.SaveAsPng("MyQRWithLogo.png");       // PNG image
myQRCodeWithLogo.SaveAsJpeg("MyQRWithLogo.jpg");      // JPEG image
$vbLabelText   $csharpLabel

Cada formato serve para finalidades específicas:

Como verificar a legibilidade do código QR após personalização?

Modificações de cor e adições de logotipo podem impactar a legibilidade do código QR. Use o método Verify() para garantir que seus códigos QR personalizados permaneçam legíveis:

using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;

// Generate QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue);

// Verify the QR code can still be scanned
if (!myVerifiedQR.Verify())
{
    Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue");
    myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}

// Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Drawing;

// Generate QR code with logo
QRCodeLogo qrCodeLogo = new QRCodeLogo("visual-studio-logo.png");
GeneratedBarcode myVerifiedQR = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/", qrCodeLogo);

// Apply light color (may affect readability)
myVerifiedQR.ChangeBarCodeColor(Color.LightBlue);

// Verify the QR code can still be scanned
if (!myVerifiedQR.Verify())
{
    Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue");
    myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue);
}

// Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html");
$vbLabelText   $csharpLabel

O método Verify() realiza um teste de varredura abrangente no seu código QR. Isso garante compatibilidade em diferentes dispositivos de escaneamento e condições de iluminação antes da implantação.

Código QR verificado com coloração azul escura e logotipo do Visual Studio Um código QR verificado com sucesso em azul escuro, demonstrando contraste adequado para escaneamento confiável

Como posso codificar dados binários em códigos QR?

Os códigos QR são excelentes para armazenar dados binários de forma eficiente. Essa capacidade permite aplicações avançadas como transferência de dados criptografados, compartilhamento de arquivos e configuração de dispositivos IoT:

using IronBarCode;
using System;
using System.Linq;

// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");

// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();

// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
    Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Data integrity check failed");
}
using IronBarCode;
using System;
using System.Linq;

// Convert string to binary data
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");

// Create QR code from binary content
QRCodeWriter.CreateQrCode(binaryData, 500).SaveAsPng("MyBinaryQR.png");

// Read and verify binary data integrity
var myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First();

// Confirm data matches original
if (binaryData.SequenceEqual(myReturnedData.BinaryValue))
{
    Console.WriteLine("Binary Data Read and Written Perfectly");
}
else
{
    throw new Exception("Data integrity check failed");
}
$vbLabelText   $csharpLabel

A codificação binária em códigos QR oferece várias vantagens:

  • Eficiência: Armazena dados em formato binário compacto
  • Versatilidade: Lida com qualquer tipo de dado (arquivos, conteúdo criptografado, objetos serializados)
  • Integridade: Preserva sequências de bytes exatas sem problemas de codificação

Esse recurso diferencia o IronBarcode de bibliotecas básicas de código QR, permitindo cenários sofisticados de troca de dados em suas aplicações.

Código QR contendo dados codificados em binário Código QR armazenando dados binários, demonstrando as capacidades avançadas de codificação do IronBarcode

How Do I Read QR Codes in C#?

O IronBarcode fornece capacidades flexíveis de leitura de códigos QR. Aqui está a abordagem mais simples:

using IronBarCode;
using System;
using System.Linq;

// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { 
    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
});

// Extract and display the decoded value
if (result != null && result.Any())
{
    Console.WriteLine(result.First().Value);
}
else
{
    Console.WriteLine("No QR codes found in the image.");
}
using IronBarCode;
using System;
using System.Linq;

// Read QR code with optimized settings
BarcodeResults result = BarcodeReader.Read("QR.png", new BarcodeReaderOptions() { 
    ExpectBarcodeTypes = BarcodeEncoding.QRCode 
});

// Extract and display the decoded value
if (result != null && result.Any())
{
    Console.WriteLine(result.First().Value);
}
else
{
    Console.WriteLine("No QR codes found in the image.");
}
$vbLabelText   $csharpLabel

Para cenários mais complexos que exigem controle refinado:

using IronBarCode;
using System;
using System.Linq;

// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,           // Optimize for speed
    ExpectMultipleBarcodes = false,        // Single QR code expected
    ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
    Multithreaded = true,                  // Enable parallel processing
    MaxParallelThreads = 4,                // Utilize multiple CPU cores
    RemoveFalsePositive = true,            // Filter out false detections
    ImageFilters = new ImageFilterCollection() // Apply preprocessing
    {
        new AdaptiveThresholdFilter(),    // Handle varying lighting
        new ContrastFilter(),              // Enhance contrast
        new SharpenFilter()                // Improve edge definition
    }
};

// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);
using IronBarCode;
using System;
using System.Linq;

// Configure advanced reading options
BarcodeReaderOptions options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Faster,           // Optimize for speed
    ExpectMultipleBarcodes = false,        // Single QR code expected
    ExpectBarcodeTypes = BarcodeEncoding.QRCode, // QR codes only
    Multithreaded = true,                  // Enable parallel processing
    MaxParallelThreads = 4,                // Utilize multiple CPU cores
    RemoveFalsePositive = true,            // Filter out false detections
    ImageFilters = new ImageFilterCollection() // Apply preprocessing
    {
        new AdaptiveThresholdFilter(),    // Handle varying lighting
        new ContrastFilter(),              // Enhance contrast
        new SharpenFilter()                // Improve edge definition
    }
};

// Read with advanced configuration
BarcodeResults result = BarcodeReader.Read("QR.png", options);
$vbLabelText   $csharpLabel

Essas opções avançadas de leitura permitem a detecção confiável de códigos QR em condições desafiadoras como pouca iluminação, distorção de imagem ou impressões de baixa qualidade.

O que vem a seguir para o desenvolvimento de códigos QR?

Agora que você dominou a geração de códigos QR com o IronBarcode, explore esses tópicos avançados:

Baixar Recursos

Acesse o código-fonte completo e exemplos:

Documentação da API

Explore o conjunto completo de recursos na referência da API:

Alternativa: IronQR para Aplicações Avançadas de QR

Para projetos que exigem capacidades inovadoras de código QR, considere IronQR—a biblioteca especializada em códigos QR da Iron Software com leitura baseada em aprendizado de máquina com 99,99% de precisão e opções avançadas de geração.

Pronto para implementar códigos QR na sua aplicação .NET? Comece sua avaliação gratuita ou baixe o IronBarcode hoje.

Perguntas frequentes

Como faço para gerar um código QR em C#?

Você pode gerar um código QR em C# usando o método IronBarcode's QRCodeWriter.CreateQrCode() . Esse método permite que você passe o conteúdo, o tamanho e o nível de correção de erros para criar um código QR de forma eficiente.

Em quais formatos de imagem os códigos QR podem ser exportados?

Com o IronBarcode, você pode exportar códigos QR para vários formatos, incluindo PNG, JPEG, PDF e HTML. Métodos como SaveAsPng() , SaveAsJpeg() , SaveAsPdf() e SaveAsHtmlFile() estão disponíveis para essa finalidade.

Como posso adicionar o logotipo da empresa a um código QR?

A IronBarcode fornece o método CreateQrCodeWithLogo() , no qual você pode passar um objeto QRCodeLogo contendo a imagem do seu logotipo. A biblioteca garante que o logotipo esteja dimensionado e posicionado corretamente para que o código QR permaneça legível.

O que é correção de erros em código QR e qual nível devo escolher?

A correção de erros em códigos QR permite que eles permaneçam legíveis mesmo que parcialmente danificados. O IronBarcode oferece quatro níveis: Baixo (7%), Médio (15%), Quartil (25%) e Alto (30%). O nível Médio é adequado para a maioria dos usos, enquanto o Alto é ideal para ambientes desafiadores.

Como posso verificar a legibilidade de um código QR personalizado?

Você pode usar o método Verify() em um objeto GeneratedBarcode para garantir que seu código QR personalizado permaneça legível após modificações como alterações de cor ou adição de logotipo.

É possível codificar dados binários em códigos QR?

Sim, o método CreateQrCode() do IronBarcode suporta a codificação de arrays de bytes, permitindo armazenar dados binários, como arquivos ou conteúdo criptografado, em códigos QR.

Como faço para ler códigos QR de imagens em C#?

Para ler códigos QR de imagens em C#, utilize o método BarcodeReader.Read() do IronBarcode. Para um desempenho otimizado, especifique BarcodeEncoding.QRCode em BarcodeReaderOptions .

Qual é a capacidade máxima de dados de um código QR?

Os códigos QR gerados pelo IronBarcode podem conter até 2.953 bytes, 4.296 caracteres alfanuméricos ou 7.089 dígitos numéricos, dependendo do nível de correção de erros selecionado.

Como posso alterar a cor de um código QR, garantindo que ele continue legível?

O método ChangeBarCodeColor() do IronBarcode permite alterar a cor de um código QR. Sempre utilize o método Verify() posteriormente para confirmar que a legibilidade do código QR não foi afetada pela mudança de cor.

Que funcionalidades oferece uma biblioteca especializada de códigos QR?

IronQR, uma biblioteca especializada da Iron Software, inclui recursos avançados, como leitura de código QR com tecnologia de aprendizado de máquina, com 99,99% de precisão, e recursos robustos de geração, adaptados para aplicações complexas.

Jacob Mellor, Diretor de Tecnologia da Team Iron
Diretor de Tecnologia

Jacob Mellor é Diretor de Tecnologia da Iron Software e um engenheiro visionário pioneiro na tecnologia C# PDF. Como desenvolvedor original do código-fonte principal da Iron Software, ele moldou a arquitetura de produtos da empresa desde sua criação, transformando-a, juntamente com o CEO Cameron Rimington, em uma ...

Leia mais
Pronto para começar?
Nuget Downloads 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.