Ir para o conteúdo do rodapé
USANDO O IRONQR

Como gerar códigos QR em C# com um pacote NuGet

Gerar Códigos QR em aplicações .NET nunca foi tão simples. Com o pacote NuGet correto, você pode criar Códigos QR, personalizar sua aparência e salvá-los em múltiplos formatos de saída com apenas algumas linhas de código. IronQR oferece geração de Código QR de nível empresarial com suporte multiplataforma for .NET Core, .NET Framework e .NET 5-10.

Este tutorial demonstra como instalar o pacote NuGet IronQR e começar a gerar Códigos QR imediatamente. Seja você construindo sistemas de inventário, plataformas de emissão de ingressos para eventos ou aplicativos de marketing, o IronQR fornece as ferramentas necessárias para implementação profissional de Códigos QR.

!{--010011000100100101000010010100100100000101010010010110010101111101000111010001010101010100010111110101001101010100010000010101001001010100010001010100010001011111010101110100100 101010100010010000101111101010000010100100111101000100010101010100001101010100010111110101010001010010010010010010010100000101001100010111110100001001001100010011110100001101001011--}

Como Você Instala um Pacote NuGet de Código QR?

Instalar o IronQR através do Gerenciador de Pacotes NuGet leva apenas alguns segundos. Abra o Console do Gerenciador de Pacotes NuGet no Visual Studio e execute o seguinte comando, ou use o comando dotnet add package para ambientes CLI:

Install-Package IronQR

O pacote NuGet gerencia automaticamente todas as dependências, garantindo compatibilidade com seus frameworks-alvo. O IronQR suporta .NET Framework 4.6.2+, .NET Core 2.0+ e .NET 5-10, tornando-o uma biblioteca versátil para qualquer projeto no Visual Studio.

Antes de escrever qualquer código, você precisa de uma chave de licença de avaliação gratuita. Configure-a logo no início da inicialização de sua aplicação para que todas as chamadas subsequentes sejam autenticadas:

using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
using IronQr;

// Set license key before any IronQR operation
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
$vbLabelText   $csharpLabel

Com a chave de licença configurada, seu aplicativo está pronto para gerar, ler e personalizar Códigos QR sem marcas d'água nas imagens de saída.

Como Você Gera Seu Primeiro Código QR?

Criar seu primeiro Código QR requer um código mínimo. A classe QrWriter lida com a geração de códigos QR com padrões sensatos que funcionam bem para a maioria dos casos de uso:

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from text data
QrCode myQr = QrWriter.Write("Hello World");

// Save QR code as bitmap image
AnyBitmap qrImage = myQr.Save();

// Export to PNG file
qrImage.SaveAs("hello-qr.png");
$vbLabelText   $csharpLabel

Saída de Código QR

NuGet Gerador de Códigos QR: Gere Códigos QR em C# com Apenas Algumas Linhas de Código: Imagem 1 - Saída QR Simples

O método QrWriter.Write() aceita dados de string e retorna um objeto QrCode contendo o símbolo QR. O método Save() converte isso em um AnyBitmap, que suporta a codificação em vários formatos de imagem ou a exportação de dados vetoriais para um Caminho XAML. Esta abordagem funciona em Windows, macOS e Linux sem dependências específicas da plataforma -- ao contrário das bibliotecas que dependem de System.Drawing que são exclusivas para Windows a partir do .NET 6.

O padrão de três linhas acima cobre o cenário mais comum: codificar uma string, obter um bitmap e escrever um arquivo. Para uso em produção, você provavelmente passará strings de URL, identificadores de produto ou cargas úteis JSON em vez de texto simples.

Como Você Escolhe o Nível Correto de Correção de Erro?

Os Códigos QR suportam quatro níveis de correção de erro definidos no padrão ISO/IEC 18004 QR code standard que determinam quanto dano um código pode sustentar enquanto permanece escaneável. IronQR suporta todos os quatro níveis através da classe QrOptions:

Níveis de Correção de Erro de Código QR Suportados pelo IronQR
NívelCapacidade de RecuperaçãoIdeal para
L (Baixo)~7%Ambientes limpos, densidade máxima de dados
M (Médio)~15%Uso geral (padrão)
Q (Quartil)~25%Aplicações industriais
H (Alto)~30%Logotipos, sinalização externa, oclusão parcial
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionNível.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Configure high error correction level
var options = new QrOptions(QrErrorCorrectionNível.High);

// Generate QR code with options
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap image = qr.Save();
image.SaveAs("high-correction-qr.png");
$vbLabelText   $csharpLabel

Saída

NuGet Gerador de Códigos QR: Gere Códigos QR em C# com Apenas Algumas Linhas de Código: Imagem 2 - QR com alto nível de correção

Níveis mais altos de correção de erro criam símbolos QR mais densos com mais módulos brutos, permitindo que o código permaneça legível mesmo quando parcialmente obscurecido ou danificado. Para códigos que serão impressos em embalagens ou incorporados em logotipos, o nível H é a escolha certa. Para exibição exclusivamente digital, onde danos não são uma preocupação, o nível M equilibra capacidade de dados e confiabilidade.

Escolher o nível errado é uma fonte comum de falhas de leitura em produção. Se os seus códigos QR aparecerão em materiais físicos ou a distâncias variadas das câmeras, use o nível Q ou H e verifique o resultado com várias aplicações de scanner antes de implantar.

Como Personalizar a Aparência do Código QR?

IronQR oferece amplas opções de estilo através de QrStyleOptions, permitindo cores personalizadas, dimensões, margens e incorporação de logotipo. Códigos QR de marca têm um desempenho melhor em contextos de marketing porque associam visualmente o código com uma identidade conhecida:

using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Create styled QR code with custom colors
var styleOptions = new QrStyleOptions
{
    Dimensions = 300,    // Width and height in pixels
    Margins = 10,        // Quiet zone in pixels
    Color = Color.DarkBlue,
    BackgroundColor = Color.White
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap styledImage = qr.Save(styleOptions);
styledImage.SaveAs("styled-qr.png");
$vbLabelText   $csharpLabel

Saída de QR Estilizado

NuGet Gerador de Códigos QR: Gere Códigos QR em C# com Apenas Algumas Linhas de Código: Imagem 3 - Código QR Estilizado

A propriedade Dimensions define tanto a largura quanto a altura em pixels. A propriedade Margins controla a zona de silêncio -- a borda branca ao redor do símbolo QR que os scanners usam para localizar o limite do código. Reduzir as margens abaixo do mínimo recomendado de 4 módulos pode causar falhas de leitura em dispositivos mais antigos.

Adicionar logotipos aos códigos QR aumenta o reconhecimento da marca. O sistema de estilo posiciona automaticamente logotipos enquanto mantém a capacidade de leitura — uma vantagem significativa sobre alternativas de código aberto que exigem cálculos de posicionamento manuais.

Como Salvar Códigos QR em Diferentes Formatos de Saída?

IronQR suporta múltiplos formatos de saída, incluindo PNG, JPEG, GIF, TIFF, BMP e SVG. O método SaveAs detecta automaticamente o formato a partir da extensão do arquivo:

using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
using IronQr;
using IronSoftware.Drawing;

QrCode qr = QrWriter.Write("Format demonstration");
AnyBitmap image = qr.Save();

// Save to raster image formats
image.SaveAs("qr-output.png");
image.SaveAs("qr-output.jpg");
image.SaveAs("qr-output.gif");

// Get as byte array for HTTP responses or database storage
byte[] pngBytes = image.ExportBytes();
$vbLabelText   $csharpLabel

Diversos Formatos de Saída de Código QR

NuGet Gerador de Códigos QR: Gere Códigos QR em C# com Apenas Algumas Linhas de Código: Imagem 4 - Códigos QR salvos em diferentes formatos de arquivo

O método ExportBytes() é particularmente útil em aplicações web onde você precisa retornar uma imagem de código QR via HTTP sem gravar no disco. Você pode escrever o array de bytes diretamente em um stream de resposta ou armazená-lo em uma coluna de banco de dados para recuperação sob demanda.

Para incorporar códigos QR em documentos PDF, IronQR fornece o método StampToExistingPdfPage, permitindo o posicionamento direto do código QR em documentos existentes. Isso funciona nativamente sem bibliotecas PDF adicionais, o que importa em ambientes de microserviços onde é desejável minimizar a contagem de dependências.

Como Comparar o Pacote IronQR NuGet com QRCoder?

A biblioteca QRCoder é uma opção popular de código-fonte aberto para geração de códigos QR em .NET. Desenvolvedores que usaram QRCoder estão familiarizados com sua API em múltiplos passos envolvendo QRCodeGenerator, QRCodeData, e uma classe de renderização separada como PngByteQRCode. IronQR simplifica isso para uma única chamada QrWriter.Write().

Comparação de Recursos IronQR vs QRCoder para Desenvolvedores .NET
RecursoIronQRQRCoder
Renderização MultiplataformaSuporte completo for .NET 5-10Apenas para Windows na renderização de bitmap
Leitura Assistida por MLDetecção com 99,9% de precisãoApenas geração, sem leitura
Integração de PDFSuporte nativo para marcaçãoRequer bibliotecas adicionais
Suporte comercialSuporte técnico 24 horas por dia, 5 dias por semanaApenas para a comunidade
Incorporar logotipoEmbutido, auto-posicionadoSobreposição manual necessária

O QRCoder funciona bem para geração básica em ambientes Windows. O modelo de aprendizado de máquina do IronQR fornece leitura superior de código QR de qualquer ângulo - fundamental para aplicativos que processam imagens enviadas por usuários onde a qualidade de entrada não pode ser controlada. A API de método único também reduz as linhas de código necessárias para implementar um recurso funcional.

Para equipes que estão migrando do QRCoder, veja o guia de migração do QRCoder para IronQR para um mapeamento de API lado a lado.

Como você codifica dados binários em um código QR?

Além de texto, o IronQR suporta codificação de arrays de bytes para cargas úteis de código QR binário. Isso é útil para tokens criptografados, objetos serializados ou identificadores binários brutos que não podem ser representados como strings UTF-8:

using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Encode binary data -- useful for encrypted payloads or binary identifiers
byte[] binaryData = System.Text.Encoding.UTF8.GetBytes("Binary content example");
QrCode qr = QrWriter.Write(binaryData);
qr.Save().SaveAs("binary-qr.png");
$vbLabelText   $csharpLabel

Saída

NuGet Gerador de Códigos QR: Gere Códigos QR em C# com Apenas Algumas Linhas de Código: Imagem 5 - Código QR codificado em binário

A codificação binária permite incluir cargas úteis criptografadas, objetos serializados ou qualquer conteúdo binário dentro de símbolos QR. O scanner na extremidade receptora deve saber como interpretar a carga útil binária - isso é comum em sistemas de controle de acesso onde o código QR contém um token assinado em vez de uma URL legível por humanos.

Lembre-se de que dados binários produzem símbolos QR mais densos que os dados de texto equivalentes. Se o tamanho da carga útil for uma preocupação para a confiabilidade da digitalização a distância, aplique correção de erro de Nível H e teste com a menor câmera que espera que os usuários tenham.

Como você lê códigos QR em C#?

O IronQR lida com escrita e leitura. A classe QrReader aceita arquivos de imagem, bitmaps e quadros de câmera, tornando-se adequada tanto para processamento em lote quanto para cenários de escaneamento em tempo real:

using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;

// Load an existing image containing a QR code
var inputImage = AnyBitmap.FromFile("qr-to-read.png");

// Read all QR codes in the image
QrReadResult readResult = QrReader.Read(inputImage);

foreach (QrResult result in readResult.QrCodes)
{
    // Access the decoded value
    Console.WriteLine($"Decoded: {result.Value}");
}
$vbLabelText   $csharpLabel

O motor de leitura com tecnologia ML processa imagens em qualquer orientação e lida com danos parciais até o limite de correção de erro. Para cenários de leitura em produção, revise o tutorial de leitura de código QR para orientação sobre como lidar com entradas de baixa qualidade, imagens com múltiplos códigos e configuração do modo de digitalização.

Como você usa o IronQR em um aplicativo ASP.NET Core?

Aplicações web frequentemente precisam gerar códigos QR sob demanda - para links de contas de usuário, códigos de login único ou solicitações de pagamento. O exemplo a seguir mostra como servir uma imagem de código QR diretamente de um ponto final da API mínima do ASP.NET Core:

using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();
using IronQr;
using IronSoftware.Drawing;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Set license key at application startup
IronQr.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

// Return a QR code PNG for a given URL parameter
app.MapGet("/qr", (string data) =>
{
    QrCode qr = QrWriter.Write(data);
    AnyBitmap image = qr.Save();
    byte[] pngBytes = image.ExportBytes();
    return Results.File(pngBytes, "image/png");
});

app.Run();
$vbLabelText   $csharpLabel

Este padrão funciona tanto em APIs mínimas do ASP.NET Core quanto em controladores MVC padrão. A chamada ExportBytes() evita gravar arquivos temporários no disco, o que é importante em implantações em contêineres onde o sistema de arquivos pode ser somente leitura ou efêmero.

Para um guia completo de integração com o ASP.NET Core, veja o tutorial do gerador de código QR para ASP.NET Core. Um guia específico para Blazor também está disponível no tutorial gerador de código QR para Blazor.

Como você adiciona uma margem e redimensiona uma imagem de código QR?

Controlar dimensões e zonas de silêncio é essencial para saída de qualidade de impressão. IronQR expõe ambos através de QrStyleOptions, e guias dedicados de como-fazer cobrem cada um em detalhe:

using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Specify dimensions and quiet zone for print output
var printOptions = new QrStyleOptions
{
    Dimensions = 600,   // High resolution for print
    Margins = 20        // Generous quiet zone for reliable scanning
};

QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap printImage = qr.Save(printOptions);
printImage.SaveAs("print-ready-qr.png");
$vbLabelText   $csharpLabel

Para orientação completa sobre tamanhos e requisitos de margem em diferentes mídias de saída, veja os artigos práticos sobre como redimensionar imagens de código QR e como adicionar margens aos códigos QR. O guia para criar imagem de código QR cobre todo o fluxo de criação de imagens desde a ativação da licença até a saída de arquivos.

Para casos de uso específicos de código QR - incluindo geração de códigos QR para cartões de visita, construindo um gerador de código QR dinâmico, e lendo códigos QR de imagens - os artigos dedicados cobrem cada cenário com exemplos completos de código.

Quais são os seus próximos passos?

O IronQR transforma a geração de código QR de um processo em várias etapas para uma integração simples do NuGet. Você instala o pacote, chama QrWriter.Write(), e salva o resultado -- três operações que cobrem a maioria dos cenários do mundo real. Níveis de correção de erro, estilização personalizada, marcação de PDF e leitura com tecnologia ML estão todos disponíveis através da mesma biblioteca.

A documentação do IronQR fornece a referência completa da API, incluindo tópicos avançados, como ler códigos QR com modos de digitalização, processamento em lote, e notas de implantação específicas para a plataforma. A seção de tutoriais do IronQR inclui guias passo a passo for .NET MAUI, VB.NET, e aplicações de console.

Comece um teste gratuito para explorar o conjunto completo de recursos sem restrições, ou compre uma licença para implantação em produção com suporte de engenharia 24/5.

Perguntas frequentes

Como instalar o pacote NuGet IronQR ?

Execute o dotnet add package IronQR em um terminal ou abra o Console do Gerenciador de Pacotes NuGet no Visual Studio e execute Install-Package IronQR . O pacote é compatível com .NET Framework 4.6.2+, .NET Core 2.0+ e .NET 5-10.

Como gerar um código QR em C# com IronQR?

Chame QrWriter.Write("your-data") para criar um objeto QrCode , depois chame .Save() para obter um AnyBitmap e, finalmente, chame .SaveAs("output.png") para gravar o arquivo.

Quais formatos de saída o IronQR suporta para códigos QR?

O IronQR suporta PNG, JPEG, GIF, TIFF, BMP e SVG. O método SaveAs detecta automaticamente o formato a partir da extensão do arquivo. Use ExportBytes() para obter uma matriz de bytes para respostas HTTP ou armazenamento em banco de dados.

Como personalizar a cor e o tamanho de um código QR com o IronQR?

Crie um objeto QrStyleOptions e defina Dimensions (pixels), Margins (pixels da zona silenciosa), Color e BackgroundColor . Passe isso para qr.Save(styleOptions) .

Quais são os níveis de correção de erros suportados IronQR ?

O IronQR suporta todos os quatro níveis ISO/IEC 18004 através QrErrorCorrectionLevel : L (~7% de recuperação), M (~15%, padrão), Q (~25%) e H (~30%). Passe o nível em um objeto QrOptions para QrWriter.Write() .

Como o IronQR se compara ao QRCoder for .NET?

O IronQR oferece renderização multiplataforma em .NET 5-10 (a renderização de bitmap do QRCoder é exclusiva do Windows), leitura integrada com tecnologia de aprendizado de máquina (o QRCoder apenas gera), carimbo PDF nativo e uma API de método único. O QRCoder é uma opção gratuita e de código aberto para geração simples baseada em Windows.

É possível usar o IronQR para ler códigos QR em imagens?

Sim. Use QrReader.Read(AnyBitmap.FromFile("path")) para ler uma imagem. O mecanismo com tecnologia de aprendizado de máquina lida com qualquer orientação e danos parciais. Itere sobre readResult.QrCodes para acessar cada result.Value decodificado.

Como gerar códigos QR em uma aplicação ASP.NET Core ?

Chame QrWriter.Write(data) dentro do seu controlador ou manipulador de API mínimo, depois chame image.ExportBytes() e retorne o array de bytes como uma resposta Results.File(pngBytes, "image/png") . Não são necessários arquivos temporários.

Jordi Bardia
Engenheiro de Software
Jordi é extremamente proficiente em Python, C# e C++, e quando não está utilizando suas habilidades na Iron Software, dedica-se à programação de jogos. Compartilhando as responsabilidades por testes, desenvolvimento e pesquisa de produtos, Jordi agrega imenso valor à melhoria contínua dos produtos. Essa experiência diversificada o mantém ...
Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me