Gerar QR Code em C# - Tutorial Completo para Desenvolvedores .NET
Precisa criar QR code em sua aplicação C#? Este tutorial mostra exatamente como gerar, 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.
-
Instale IronBarcode com o Gerenciador de Pacotes NuGet
PM > Install-Package BarCode -
Copie e execute este trecho de código.
var qr = QRCodeWriter.CreateQrCode("https://ironsoftware.com/", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium); qr.SaveAsPng("MyQR.png"); -
Implante para testar em seu ambiente de produção.
Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita
- Instale o IronBarcode via NuGet
- Create a QR code with one line: `QRCodeWriter.CreateQrCode()`
- Embed logos using `CreateQrCodeWithLogo()`
- Verify readability with `GeneratedBarcode.Verify()`
- Codifique dados binários para aplicações avançadas
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
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;
Imports IronBarCode
Imports System
Imports System.Drawing
Imports System.Linq
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");
Imports IronBarCode
' Generate a QR code with text content
Private qrCode = QRCodeWriter.CreateQrCode("hello world", 500, QRCodeWriter.QrErrorCorrectionLevel.Medium)
qrCode.SaveAsPng("MyQR.png")
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.
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");
Imports IronBarCode
Imports IronSoftware.Drawing
' Load logo image
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
' Create QR code with embedded logo
Private myQRCodeWithLogo As GeneratedBarcode = 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")
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 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
Imports IronBarCode
Imports System.Drawing
' Create QR code with logo
Private qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Private myQRCodeWithLogo As GeneratedBarcode = 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
Cada formato serve para finalidades específicas:
- PDF: Ideal para documentos e relatórios imprimíveis
- HTML: Perfeito para integração web sem dependências externas
- PNG/JPEG: Formatos de imagem padrão para uso versátil
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");
Imports IronBarCode
Imports IronSoftware.Drawing
Imports System
Imports System.Drawing
' Generate QR code with logo
Dim qrCodeLogo As New QRCodeLogo("visual-studio-logo.png")
Dim myVerifiedQR As GeneratedBarcode = 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 Not myVerifiedQR.Verify() Then
Console.WriteLine("LightBlue is not dark enough to be read accurately. Let's try DarkBlue")
myVerifiedQR.ChangeBarCodeColor(Color.DarkBlue)
End If
' Save verified QR code
myVerifiedQR.SaveAsHtmlFile("MyVerifiedQR.html")
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.
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");
}
Imports IronBarCode
Imports System
Imports System.Linq
' Convert string to binary data
Private binaryData() As Byte = 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
Dim myReturnedData = BarcodeReader.Read("MyBinaryQR.png").First()
' Confirm data matches original
If binaryData.SequenceEqual(myReturnedData.BinaryValue) Then
Console.WriteLine("Binary Data Read and Written Perfectly")
Else
Throw New Exception("Data integrity check failed")
End If
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 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.");
}
Imports IronBarCode
Imports System
Imports System.Linq
' Read QR code with optimized settings
Private result As BarcodeResults = BarcodeReader.Read("QR.png", New BarcodeReaderOptions() With {.ExpectBarcodeTypes = BarcodeEncoding.QRCode})
' Extract and display the decoded value
If result IsNot Nothing AndAlso result.Any() Then
Console.WriteLine(result.First().Value)
Else
Console.WriteLine("No QR codes found in the image.")
End If
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);
Imports IronBarCode
Imports System
Imports System.Linq
' Configure advanced reading options
Private options As New BarcodeReaderOptions With {
.Speed = ReadingSpeed.Faster,
.ExpectMultipleBarcodes = False,
.ExpectBarcodeTypes = BarcodeEncoding.QRCode,
.Multithreaded = True,
.MaxParallelThreads = 4,
.RemoveFalsePositive = True,
.ImageFilters = New ImageFilterCollection() From {
New AdaptiveThresholdFilter(),
New ContrastFilter(),
New SharpenFilter()
}
}
' Read with advanced configuration
Private result As BarcodeResults = BarcodeReader.Read("QR.png", options)
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:
- Extraia códigos QR de documentos PDF
- Implemente o processamento em lote de códigos QR
- Aplique correções de imagem para escaneamentos difíceis
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.

