
Como gerar um código QR usando o QRCoder em comparação com o IronQR no .NET 6
Geração de Código QR em C#
Criar códigos QR em aplicações C# é uma exigência comum para desenvolvedores, especialmente para aplicações envolvendo identificação de produtos, bilhetagem, ou compartilhamento de URLs e outros dados facilmente. Existem várias bibliotecas disponíveis para gerar códigos QR em C#. Duas opções notáveis são QRCoder e IronQR. Aqui, exploraremos ambos, comparando suas capacidades, facilidade de uso, desempenho e outros fatores relevantes para desenvolvedores trabalhando com .NET 6. Neste artigo, mergulharemos em uma comparação detalhada dessas bibliotecas, examinando seus recursos, facilidade de uso, licença, e mais, junto com exemplos de código para ilustrar seu uso.
Como Gerar Código QR usando QRCoder comparado ao IronQR no .NET 6
- Crie um novo projeto no Visual Studio para gerar um código QR
- Instale os pacotes NuGet QRCoder e IronQR para comparar
- Crie códigos QR usando QRCoder e IronQR
- Opções de Personalização com QRCoder e IronQR
QRCoder
QRCoder é uma biblioteca de código aberto escrita em C# e fornece implementação de Código QR que permite gerar Códigos QR conforme definido pelo ISO/IEC 18004 em qualquer aplicação .NET. É uma biblioteca leve e fácil de usar, sem dependências de outras bibliotecas ou pilhas de rede.
Aqui estão os recursos e benefícios principais do QRCoder:
1. Facilidade de Uso
C# QRCoder oferece uma API simples e intuitiva, facilitando para os desenvolvedores gerarem códigos QR/texto de código QR com mínimo esforço. Sua simplicidade permite que desenvolvedores de todos os níveis de habilidade integrem rapidamente a geração de código QR em seus projetos.
2. Opções Extensivas de Personalização
Um dos recursos mais destacados do QRCoder é sua capacidade de personalizar códigos QR de acordo com requisitos específicos. Os desenvolvedores podem ajustar parâmetros como nível de correção de erro, tamanho, cor e até mesmo incorporar logotipos ou imagens dentro do código QR.
3. Vários Formatos de Codificação
O QRCoder suporta vários formatos de codificação, permitindo que os desenvolvedores codifiquem diferentes tipos de dados em códigos QR. Seja texto simples, URLs, informações de contato ou credenciais de Wi-Fi, o QRCoder pode lidar com uma ampla gama de formatos de dados.
4. Saída de Alta Qualidade
Os códigos QR gerados pelo C# QRCoder são de alta qualidade, garantindo legibilidade e confiabilidade em diferentes dispositivos e condições de digitalização. Essa confiabilidade é crucial para aplicações onde os códigos QR servem como uma ponte entre interações físicas e digitais.
5. Código Aberto e Desenvolvimento Ativo
O C# QRCoder é um projeto de código aberto, permitindo que os desenvolvedores contribuam para seu desenvolvimento e garantindo melhorias e atualizações contínuas. Esse envolvimento ativo da comunidade promove a inovação e assegura que a biblioteca permaneça relevante no cenário tecnológico em constante evolução.
IronQR
IronQR é uma poderosa biblioteca C# de Código QR desenvolvida e mantida pela Iron Software. Permite que engenheiros de software C# detectem, leiam e criem códigos QR em aplicativos e sites .NET. Aqui estão alguns recursos principais do IronQR:
Geração de código QR
O IronQR permite uma geração de código QR altamente personalizável. Você pode criar códigos QR com várias opções, como redimensionamento, margens, bordas e recoloração.
using IronQr;
using IronSoftware.Drawing;
public class Program
{
public static void Main()
{
// Prepare a QR Code object
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
// Save QR Code to memory
AnyBitmap myQrImage = theQrGen.Save();
// Save QR Code image to disk
myQrImage.SaveAs("awesome.png");
}
}Imports IronQr
Imports IronSoftware.Drawing
Public Class Program
Public Shared Sub Main()
' Prepare a QR Code object
Dim theQrGen As QrCode = QrWriter.Write("Awesome IronQR")
' Save QR Code to memory
Dim myQrImage As AnyBitmap = theQrGen.Save()
' Save QR Code image to disk
myQrImage.SaveAs("awesome.png")
End Sub
End ClassLeitura de Código QR
O IronQR usa um modelo avançado de aprendizado de máquina para detecção de códigos QR. Esse modelo garante uma leitura precisa e rápida de códigos QR. O IronQR suporta leitura de códigos QR de vários formatos de imagem, incluindo JPG, PNG, SVG, bmp e imagens multipágina como gif e tiff.
using IronQr;
using IronSoftware.Drawing;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
// Read QR code
var inputBmp = AnyBitmap.FromFile("awesome.png");
// Load the image into QrImageInput
QrImageInput imageInput = new QrImageInput(inputBmp);
// Create the QR Reader object
QrReader reader = new QrReader();
// Read the Input and get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
}
}Imports IronQr
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Public Class Program
Public Shared Sub Main()
' Read QR code
Dim inputBmp = AnyBitmap.FromFile("awesome.png")
' Load the image into QrImageInput
Dim imageInput As New QrImageInput(inputBmp)
' Create the QR Reader object
Dim reader As New QrReader()
' Read the Input and get all embedded QR Codes
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
End Sub
End ClassCompatibilidade entre plataformas
- Desktop: Funciona com aplicativos de desktop do Windows (WPF & MAUI).
- Mobile: Compatível com Xamarin e MAUI.
- Web: Suporta Blazor e WebForms.
- Console: Ambientes de aplicativos e bibliotecas.
- Nuvem: Docker, Azure e AWS.
Codificação de Dados
Você pode codificar vários tipos de dados em códigos QR, incluindo texto, URLs, bytes e números.
Correção de erros
IronQR fornece mensagens de erro detalhadas e opções de correção de erro personalizadas.
Confiado por Milhões, o IronQR é confiado por engenheiros em todo o mundo por sua confiabilidade e facilidade de uso. Para começar com o IronQR, você pode instalá-lo via NuGet.
Passo 1: Crie um novo projeto do Visual Studio para Gerar um código QR
Para começar com o código, vamos criar um Projeto Visual Studio. Abra o Microsoft Visual Studio 2022 e selecione a opção "Criar um novo projeto".

Selecione o template de aplicação de Console da lista de templates

Em seguida, forneça o nome do projeto e os nomes da solução. Selecione o caminho para armazenar os arquivos do projeto

Selecione a versão do .NET desejada. Eu vou com o mais recente .NET 8 framework no momento de escrever este artigo.

Uma vez clicado o botão criar, o projeto é criado e pronto para desenvolvimento.
Passo 2: Instale os pacotes NuGet do QRCoder e IronQR
O pacote NuGet QRCoder pode ser instalado usando o gerenciador de pacotes NuGet do Visual Studio conforme mostrado abaixo.

Ou instale-o a partir do console do gerenciador de pacotes NuGet usando o seguinte comando
O pacote NuGet do QRCoder está disponível no site do NuGet aqui

O IronQR também pode ser instalado de forma semelhante usando o gerenciador de pacotes NuGet do Visual Studio, mostrado abaixo.

Também a partir do console do gerenciador de pacotes NuGet, use o seguinte comando

Passo 3: Criar códigos QR usando QRCoder e IronQR
Criar códigos QR nas duas bibliotecas requer um código simples, vamos verificar
QRCoder
O código a seguir mostra como gerar nosso primeiro código QR usando o QRCoder
using QRCoder;
using System.Drawing;
using System.IO;
namespace QRCoderVs IronQR
{
public class Program
{
public static void Main()
{
// Initialize QRCodeGenerator
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
// Create QR code data
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
// Initialize the QR code with the data
using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
{
// Generate the QR code's graphic and store it in a byte array
byte[] qrCodeImage = qrCode.GetGraphic(20);
// Convert the byte array to an image format and save it to disk
using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
{
file.Save("QrCoderDemo1.png");
}
}
}
}
}
Explicação do código
- Inicialize o
QRCodeGeneratore chame o métodoCreateQrCodepara gerar dados do código QR. - Use a classe
BitmapByteQRCodepara gerar um array de bytes a partir dos dados do código QR usando o métodoGetGraphic. - Converta o array de bytes em uma imagem usando
Image.FromStream. - Salve a imagem gerada no disco.
Saída

IronQR
O código a seguir mostra como gerar código QR usando o IronQR:
using IronQr;
using IronSoftware.Drawing;
namespace QrCodeWith IronQR
{
public class Program
{
public static void Main()
{
// Prepare a QR Code object
QrCode theQrGen = QrWriter.Write("Awesome IronQR");
// Save QR Code to memory
AnyBitmap myQrImage = theQrGen.Save();
// Save QR Code image to disk
myQrImage.SaveAs("awesome.png");
}
}
}
Como você já pode ver a diferença na quantidade de código. A geração de código com IronQR requer menos código.
Explicação do código
- Crie o código QR usando o método
QrWriter.Write, passando o conteúdo desejado. - Salve o código QR na memória usando o método
Save. - Salve a imagem do código QR em disco usando
SaveAs.
Saída
A saída possui uma marca d'água IronQR, pois estou usando uma versão de teste da biblioteca. Com uma versão licenciada, isso será removido.

Passo 4: Opções de Personalização com QRCoder e IronQR
Ambas as bibliotecas suportam opções de personalização. Vamos olhar algumas opções disponíveis
Podemos definir as cores do código QR no QRCoder como abaixo:
using QRCoder;
using System.Drawing;
using System.IO;
namespace QRCoderVs IronQR
{
public class Program
{
public static void Main()
{
// Initialize QRCodeGenerator
using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
// Create QR code data
using (QRCodeData qrCodeData = qrGenerator.CreateQrCode("QRCoder Demo 1", QRCodeGenerator.ECCLevel.Q))
// Initialize the QR code with the data
using (BitmapByteQRCode qrCode = new BitmapByteQRCode(qrCodeData))
{
// Generate the QR code's graphic, specifying foreground and background colors
byte[] qrCodeImage = qrCode.GetGraphic(20, Color.Red, Color.Green);
// Convert the byte array to an image format and save it to disk
using (var file = Image.FromStream(new MemoryStream(qrCodeImage)))
{
file.Save("QrCoderDemo1.png");
}
}
}
}
}
Explicação do código
- Inicialize o
QRCodeGeneratore chame o métodoCreateQrCodepara gerar dados do código QR. - Use a classe
BitmapByteQRCodepara gerar um array de bytes a partir dos dados do código QR usando o métodoGetGraphic, especificando as cores de primeiro plano (vermelho) e de fundo (verde). - Converta o array de bytes em uma imagem usando
Image.FromStream. - Salve a imagem gerada no disco.
Saída

Podemos definir cores para a geração de código QR de IronQR como o código a seguir:
using IronQr;
using IronSoftware.Drawing;
using System.Drawing;
namespace QrCodeWith IronQR
{
public class Program
{
public static void Main()
{
// Set options
QrOptions options = new QrOptions(QrErrorCorrectionLevel.Medium, 20);
// Create QR
QrCode myQr = QrWriter.Write("IronQR Generation Demo 1", options);
// Style options
AnyBitmap logoBmp = new AnyBitmap("logo.png");
QrStyleOptions style = new QrStyleOptions
{
BackgroundColor = Color.Aqua,
Dimensions = 300, // px
Margins = 10, // px
Color = Color.Red,
Logo = new QrLogo
{
Bitmap = logoBmp,
Width = 100,
Height = 100,
CornerRadius = 2
}
};
// Save QR Code
AnyBitmap qrImage = myQr.Save(style);
// Save QR Code to local disk
qrImage.SaveAs("advancedQr.png");
}
}
}
Com o IronQR, há muitas opções de personalização. No programa acima, tentamos personalizar a cor de fundo, a cor do código QR, as margens. Também podemos definir as dimensões.
Explicação do código
- Primeiro, crie o objeto
QrOptionspara definir o nível de correção de erros. - Prepare o código QR com o método
QrWriter.Write. - Defina as opções de estilo com
QrStyleOptions. - Defina a cor de fundo, cor de primeiro plano, margens, dimensões e até um logotipo para o código QR.
- Salve a imagem do código QR no disco local.
Saída

Licenciamento
QRCoder é um pacote baseado em licença MIT e é desenvolvido com a ajuda da comunidade. Este pacote é bom para projetos com orçamento reduzido. O usuário precisa esperar que a comunidade resolva os problemas ou pode corrigir e enviar o código para o Repositório Git com solicitações de pull aprovadas.
IronQR requer uma licença. Tem o suporte da Iron Software.
Uma licença de teste do IronQR pode ser obtida. A chave obtida precisa ser colocada no arquivo appSettings.json aqui:
{
"IronQr.License.LicenseKey": "myKey"
}
Conclusão
Escolher entre C# QRCoder e IronQR depende, em última análise, dos requisitos específicos do seu projeto. Se você precisa de uma biblioteca de geração de código QR gratuita e de código aberto com muitas opções de personalização, então o QRCoder C# pode ser a escolha preferida devido à sua simplicidade e extensas opções de personalização.
Se você precisa de uma biblioteca em nível empresarial que suporte não apenas a geração de códigos QR com opções de personalização, mas também suporte a leitura de códigos QR, então IronQR seria a escolha definitiva. Com a biblioteca IronQR, seus muitos benefícios e suporte funcionalidade da Iron Software, os desenvolvedores podem escrever aplicativos empresariais com facilidade e tranquilidade.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.
Artigos relacionados


