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

Gerador e leitor de código QR for .NET Core | IronQR

Criar um gerador de código QR no .NET Core é simples quando você escolhe a biblioteca certa. Ao avaliar os requisitos para um gerador de código QR, os desenvolvedores procuram um equilíbrio entre facilidade de uso e recursos avançados opcionais. Seja construindo aplicações web ASP.NET Core ou ferramentas de console, os desenvolvedores precisam de uma biblioteca confiável que lide com tudo, desde a criação básica do código QR até a personalização avançada.

O IronQR oferece uma solução poderosa for .NET Core que suporta codificação de strings de texto, URLs e texto Unicode japonês. Enquanto alguns podem inicialmente procurar uma biblioteca open source .NET como a biblioteca QRCoder (conhecida por sua licença permissiva MIT), o IronQR oferece uma alternativa de nível empresarial com capacidades de aprendizado de máquina e suporte dedicado.

Este tutorial demonstra como gerar códigos QR, configurar níveis de correção de erro e ler códigos existentes usando detecção baseada em aprendizado de máquina, tudo dentro dos seus projetos .NET Core.

Comece a usar o IronQR hoje com uma avaliação gratuita.

!{--010011000100100101000010010100100100000101010010010110010101111101000111010001010101010100010111110101001101010100010000010101001001010100010001010100010001011111010101110100100 101010100010010000101111101010000010100100111101000100010101010100001101010100010111110101010001010010010010010010010100000101001100010111110100001001001100010011110100001101001011--}

Como você instala uma biblioteca de código QR no .NET Core?

Para começar, abra o Visual Studio e clique no botão de criar para iniciar um novo projeto. Uma vez que você atribuiu um nome ao projeto, instalar a biblioteca através do Gerenciador de Pacotes NuGet leva apenas alguns segundos. Enquanto alguns desenvolvedores podem procurar pelo pacote NuGet QRCoder, você pode instalar o framework IronQR executando o seguinte comando no Console do Gerenciador de Pacotes:

Install-Package IronQR

Alternativamente, use a interface do Gerenciador de Pacotes NuGet buscando por "IronQR" e clicando no botão de instalar. A biblioteca fornece uma implementação .NET compatível com .NET Core 3.x, .NET 5, 6, 7, 8, 9, e 10, tornando-a ideal para o desenvolvimento web moderno e projetos multiplataforma.

Após a instalação, adicione as diretivas necessárias using no topo do seu arquivo. IronQR se integra com IronSoftware.Drawing para o manuseio de imagens multiplataforma, eliminando a necessidade de dependências específicas de plataforma, como System.Drawing.Common, que foi deprecated para uso multiplataforma no .NET 6 e posterior.

Você pode verificar se a instalação foi bem-sucedida conferindo as referências de pacotes do seu projeto no arquivo .csproj ou confirmando que o pacote NuGet aparece na saída do console do Gerenciador de Pacotes. Uma vez instalado, a referência da API IronQR fica imediatamente disponível.

Como você gera um código QR?

A classe QrWriter, frequentemente usada junto com métodos de extensão convenientes, torna a geração de códigos QR simples. Aqui está o código-fonte de um exemplo completo usando declarações de nível superior para gerar um código QR em apenas algumas linhas de código:

using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");

// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate a QR code from input text
QrCode qrcode = QrWriter.Write("https://ironsoftware.com");

// Save as PNG image
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("website-qr.png");
$vbLabelText   $csharpLabel

Saída

Gerador de QR Code .NET Core: Criar e Ler Códigos de Resposta Rápida em C#: Imagem 1 - QR criado a partir do URL

O método QrWriter.Write() processa os dados em QrCodeData, que contém os módulos brutos (os quadrados pretos e brancos) do símbolo QR. IronQR usa geradores de payload internos para garantir que o texto de entrada seja codificado de forma eficiente para dados numéricos, cadeias de texto alfanuméricas ou arrays de bytes.

A classe AnyBitmap de IronSoftware.Drawing fornece salvamento de imagem multiplataforma, de forma que o mesmo código funcione no Windows, macOS e Linux sem modificação. Você pode salvar a saída como PNG, JPEG ou outros formatos suportados dependendo do seu caso de uso.

Para uma demonstração funcional, veja a página do exemplo de geração de código QR que mostra opções de configuração adicionais juntamente com o fluxo de trabalho básico de geração.

Quais são os níveis de correção de erro e por que eles importam?

A correção de erro determina quanto dano um símbolo QR pode suportar enquanto permanece legível. Este é um dos recursos avançados opcionais que permitem branding e durabilidade. O padrão de código QR (ISO/IEC 18004) define quatro níveis de correção de erro, cada um trocando capacidade de dados por resiliência.

Níveis de Correção de Erro do Código QR e Seus Casos de Uso
Nível Recuperação de dados Ideal para
L (Baixo) ~7% Exibições digitais limpas
M (Médio) ~15% Uso geral
Q (Quartil) ~25% Materiais impressos
H (Alto) ~30% Ambientes agressivos, sobreposições de logotipo

Configure a correção de erro usando QrOptions:

using IronQr;
using IronSoftware.Drawing;

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

// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
using IronQr;
using IronSoftware.Drawing;

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

// Generate QR code with options
QrCode qrcode = QrWriter.Write("Product-12345", options);
AnyBitmap qrImage = qrcode.Save();
qrImage.SaveAs("product-qr.png");
$vbLabelText   $csharpLabel

Saída do QR

Gerador de QR Code .NET Core: Criar e Ler Códigos de Resposta Rápida em C#: Imagem 2 - Código QR gerado com correção de erro

O segundo parâmetro especifica o número máximo de versão permitido, controlando o tamanho e a capacidade de dados do código QR. Correção de erro mais alta é essencial ao adicionar uma imagem de logotipo ou para cenários de desgaste físico.

Quando você planeja sobrepor um logotipo em um código QR, sempre use o Nível H. A redundância adicional compensa os módulos ocultos pelo logotipo, mantendo o código legível. A documentação de correção de erro do IronQR explica como a seleção de versão interage com a capacidade de dados e nível de correção.

Como personalizar a aparência do código QR com logotipo e cores?

O QrStyleOptions do IronQR permite a geração de código QR alinhada à marca com cores personalizadas, dimensões e logotipos incorporados. Isso é particularmente útil para materiais de marketing, embalagens de produtos e ingressos de eventos onde a consistência visual importa.

using IronQr;
using IronSoftware.Drawing;

var styleOptions = new QrStyleOptions
{
    Dimensions = 300,
    Margins = 10,
    Color = Color.DarkBlue,
    Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};

QrCode qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");
using IronQr;
using IronSoftware.Drawing;

var styleOptions = new QrStyleOptions
{
    Dimensions = 300,
    Margins = 10,
    Color = Color.DarkBlue,
    Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("company-logo.png") }
};

QrCode qrcode = QrWriter.Write("https://yourcompany.com");
AnyBitmap qrImage = qrcode.Save(styleOptions);
qrImage.SaveAs("branded-qr.png");
$vbLabelText   $csharpLabel

Código QR Estilizado

Gerador de QR Code .NET Core: Criar e Ler Códigos de Resposta Rápida em C#: Imagem 3 - Saída do código QR estilizado

A propriedade Dimensions define o tamanho da imagem de saída em pixels. A propriedade Margins controla a zona silenciosa -- a borda em branco ao redor do código QR que os scanners precisam para identificar corretamente o limite do símbolo. O guia de personalização do código QR cobre propriedades de estilo adicionais, incluindo cor de fundo e opções de forma de módulo.

Ao incorporar um logotipo, mantenha-o em no máximo 30% da área total do código QR. Exceder esse limite pode comprometer a legibilidade, mesmo com correção no Nível H. Testar com várias aplicações de escâner de QR após a personalização é uma boa prática.

Como você gera códigos QR no ASP.NET Core?

Integrar a geração de códigos QR no ASP.NET Core segue o padrão Model View Controller. Aqui está uma implementação da classe HomeController que retorna uma imagem de código QR diretamente de um método de ação:

using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

namespace Examples
{
    public class HomeController : Controller
    {
        public IActionResult GenerateQR(string content)
        {
            QrCode myQr = QrWriter.Write(content);
            AnyBitmap qrImage = myQr.Save();
            byte[] imageBytes = qrImage.ExportBytes();
            return File(imageBytes, "image/png");
        }
    }
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;

namespace Examples
{
    public class HomeController : Controller
    {
        public IActionResult GenerateQR(string content)
        {
            QrCode myQr = QrWriter.Write(content);
            AnyBitmap qrImage = myQr.Save();
            byte[] imageBytes = qrImage.ExportBytes();
            return File(imageBytes, "image/png");
        }
    }
}
$vbLabelText   $csharpLabel

Este endpoint aceita dados de código QR como parâmetro e retorna a imagem PNG gerada diretamente. A abordagem funciona tanto com projetos ASP.NET Core Web API quanto com views Razor.

Para aplicações de produção ASP.NET Core, considere armazenar em cache os códigos QR gerados com frequência usando IMemoryCache ou IDistributedCache para reduzir a sobrecarga da CPU. Códigos QR para URLs estáticas, identificadores de produtos ou links de eventos não mudam entre solicitações e são candidatos ideais para cache.

Você também pode integrar IronQR em um endpoint de API Minimal. O tutorial de integração do ASP.NET Core fornece um exemplo completo, incluindo padrões de injeção de dependência e como servir imagens de código QR a partir de um componente Blazor.

Registrar a chave de licença do IronQR em Program.cs usando o padrão de declaração de nível superior mantém a configuração de inicialização limpa:

using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronQr;

IronQr.License.LicenseKey = "YOUR-LICENSE-KEY";
$vbLabelText   $csharpLabel

Defina a chave de licença antes de chamar qualquer método do IronQR. Durante o desenvolvimento, você pode aplicar uma chave de teste gratuita obtida na página de licenciamento do IronQR.

Como codificar texto Unicode em japonês?

O IronQR suporta a codificação de texto Unicode em japonês através do modo Kanji, que codifica eficientemente caracteres unicode japoneses usando menos segmentos de dados do que a codificação padrão. Isso reduz a versão (tamanho) do código QR para o mesmo conteúdo, produzindo um símbolo menos complexo que é escaneado mais rapidamente.

using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
using IronQr;
using IronSoftware.Drawing;

// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
$vbLabelText   $csharpLabel

Saída

Gerador de QR Code .NET Core: Criar e Ler Códigos de Resposta Rápida em C#: Imagem 4 - Código QR codificado com texto Unicode japonês

A biblioteca seleciona automaticamente o modo Kanji quando detecta caracteres japoneses, otimizando a capacidade de dados do código QR sem configuração manual de segmentos de dados. Isso é importante para aplicações que visam usuários falantes de japonês, como plataformas de e-commerce, menus de restaurantes ou quiosques de informação de viagem.

O modo Kanji codifica caracteres do conjunto de caracteres Shift JIS. Se sua aplicação processa texto em japonês e latim na mesma string, o IronQR lida com a troca de modos internamente, selecionando a codificação mais eficiente para cada segmento. Para as melhores práticas de internacionalização em .NET, a documentação de globalização da Microsoft oferece contexto útil sobre codificação de caracteres.

Como ler códigos QR com aprendizado de máquina?

O IronQR se destaca através de seu leitor de QR com aprendizado de máquina. O modelo de ML atinge alta precisão, mesmo lendo códigos QR de ângulos ou imagens parcialmente obscurecidas -- uma vantagem significativa sobre os algoritmos de detecção baseados em limiar tradicionais usados em muitas alternativas open source.

using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
AnyBitmap inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);

// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);

foreach (var result in results)
{
    Console.WriteLine($"Found: {result.Value}");
}
using IronQr;
using IronSoftware.Drawing;

// Load image containing QR code
AnyBitmap inputBmp = AnyBitmap.FromFile("scanned-document.png");
QrImageInput imageInput = new QrImageInput(inputBmp);

// Read with ML-powered detection
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);

foreach (var result in results)
{
    Console.WriteLine($"Found: {result.Value}");
}
$vbLabelText   $csharpLabel

Saída de Leitura de Código QR

Gerador de QR Code .NET Core: Criar e Ler Códigos de Resposta Rápida em C#: Imagem 5 - Dados lidos do Código QR

O objeto QrResult contém o valor decodificado juntamente com metadados de posição, que você pode usar para destacar a região do código QR detectada em sobreposições de UI ou pipelines de processamento de documentos. Essa capacidade torna o IronQR ideal para sistemas de processamento de documentos e gestão de inventário.

O modelo de ML roda inteiramente no dispositivo, sem necessidade de chamadas de API para a nuvem, tornando-o adequado para ambientes isolados e aplicações offline. Detectores tradicionais baseados em CV, como ZXing.NET, funcionam bem para códigos limpos e de frente, mas geralmente enfrentam dificuldades com condições reais como brilho, rotação ou danos. A abordagem de ML do IronQR lida com esses cenários de forma confiável.

Para processamento de documentos em lote, você pode passar várias imagens para o leitor em sequência e coletar todos os resultados. A documentação de leitura de código QR cobre a leitura a partir de páginas PDF e fluxos de câmera além de arquivos de imagem estática.

Como funciona o suporte multiplataforma?

Ao contrário das soluções dependentes de System.Drawing.Common (deprecated para uso multiplataforma no .NET 6+), IronQR usa IronSoftware.Drawing para projetos verdadeiramente multiplataforma. Seu código roda de forma consistente no Windows, macOS, Linux, iOS e Android. Para projetos multiplataforma, alternativas ao SkiaSharp são desnecessárias -- IronQR lida com abstração de plataforma internamente.

A documentação de .NET multiplataforma explica a história mais ampla de compatibilidade de plataforma for .NET 10. IronQR se alinha com esses princípios ao evitar APIs específicas de plataforma completamente.

O IronQR oferece suporte aos seguintes alvos de implantação:

  • .NET 10, 9, 8, 7, 6 -- todas as versões modernas do .NET
  • .NET Core 3.x -- para aplicações que ainda não migraram para o .NET moderno
  • Xamarin e MAUI -- para desenvolvimento de aplicações móveis
  • Azure Functions e AWS Lambda -- para cargas de trabalho serverless

Ao rodar em contêineres Docker, não são necessários pacotes de sistema adicionais além da imagem de runtime padrão do .NET. Isso simplifica o seu Dockerfile em comparação com bibliotecas que requerem dependências nativas de GDI+. O guia de implantação do IronQR cobre a configuração para ambientes conteinerizados e na nuvem.

Como comparar o IronQR com outras bibliotecas .NET de QR?

Existem várias bibliotecas .NET de código QR, cada uma com diferentes compromissos. Entender as diferenças ajuda a escolher a ferramenta certa para seu projeto.

QRCoder é uma biblioteca open source com uma licença MIT. Funciona bem para geração básica de códigos QR, mas não inclui capacidades de leitura de códigos QR ou detecção com aprendizado de máquina. Suas opções de saída são mais limitadas em comparação com o suporte a saída estilizada do IronQR.

ZXing.NET é uma versão em C# da biblioteca Java ZXing. Oferece suporte tanto para leitura quanto para escrita, mas depende de técnicas tradicionais de visão computacional que têm dificuldade com códigos danificados ou rotacionados. O manuseio de imagens multiplataforma requer configuração adicional.

IronQR oferece geração e leitura em um único pacote, com licenciamento enterprise que inclui suporte dedicado. O leitor potenciado por ML, saída estilizada e integração IronSoftware.Drawing tornam-na uma solução mais completa para aplicações de produção.

Para uma comparação detalhada de recursos, consulte os artigos IronQR vs QRCoder e IronQR vs ZXing.

Quais são os seus próximos passos?

IronQR oferece uma solução completa para geração e leitura de códigos QR no .NET Core. Ao lidar automaticamente com geradores de payload complexos e a montagem de módulos brutos e dados QrCodeData, simplifica o ciclo de desenvolvimento. Seja você precisar de uma alternativa simples de biblioteca open source ou de um sistema com recursos avançados opcionais, a arquitetura multiplataforma do IronQR garante operação confiável.

Para continuar construindo com IronQR, explore estes recursos:

Comece seu teste gratuito para desbloquear todo o potencial do IronQR sem qualquer compromisso inicial.

Perguntas frequentes

Como posso gerar códigos QR no .NET Core usando o IronQR?

Você pode gerar códigos QR no .NET Core utilizando o IronQR, que oferece uma biblioteca fácil de usar que permite a criação de códigos QR básicos, bem como recursos avançados de personalização.

Quais opções de personalização estão disponíveis no IronQR para geração de códigos QR?

A IronQR oferece diversas opções de personalização, incluindo a configuração de níveis de correção de erros e a adição de logotipos aos seus códigos QR, garantindo que eles atendam às suas necessidades específicas.

O IronQR consegue lidar com a geração de códigos QR em aplicações web ASP.NET Core?

Sim, o IronQR é totalmente compatível com aplicações web ASP.NET Core , permitindo que os desenvolvedores integrem a geração de códigos QR em seus projetos.

É possível ler códigos QR com o IronQR no .NET Core?

Com certeza, o IronQR foi projetado para ler códigos QR com alta precisão, utilizando tecnologia de aprendizado de máquina para garantir detecção e extração de dados precisas.

O que torna o IronQR adequado para desenvolvedores que buscam um gerador de código QR?

IronQR oferece um equilíbrio entre facilidade de uso e recursos avançados, tornando-se a escolha ideal para desenvolvedores que precisam de uma biblioteca de códigos QR versátil e confiável.

Existem recursos avançados para processamento de código QR no IronQR?

Sim, o IronQR inclui recursos avançados, como configurar a correção de erros, adicionar elementos de marca e lidar com vários formatos de código QR.

Como a IronQR garante a precisão da leitura do código QR?

O IronQR utiliza algoritmos baseados em aprendizado de máquina para aprimorar a precisão da leitura de códigos QR, garantindo a captura confiável de dados mesmo em condições adversas.

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