Biblioteca de código QR ZXing.org e IronBarcode: uma comparação abrangente
Se você já tem uma imagem eletrônica do código de barras em telefone técnico/telefone administrador e deseja decifrá-la como dados de texto em inglês, um scanner de código de barras pode não ser a melhor ferramenta. Além disso, os scanners de códigos de barras são limitados à leitura de apenas códigos de barras 1-D que têm capacidade de armazenamento restrita, status de domínio, formatos suportados e podem ser usados apenas com a biblioteca de classe Windows RT. Hoje em dia, códigos de barras 2-D (também chamados de códigos QR) são mais comuns e podem armazenar significativamente mais informações como data atualizada.
Um aplicativo de escaneamento de códigos de barras pode rodar em Windows, MacOS, ou Linux sem depender de nenhuma ferramenta ou API de terceiros, já que é suportado pelo .NET.

Criar e escanear códigos de barras se tornou essencial para muitas empresas para evitar spam. Duas ferramentas populares para criar códigos de barras são o projeto open source ZXing decode e IronBarcode. Neste artigo, exploraremos as características e benefícios de cada uma dessas ferramentas e as compararemos.
Decodificador ZXing
ZXing é uma biblioteca popular de código aberto para gerar e decodificar códigos de barras 1D e 2D.
Ele também suporta múltiplas linguagens de programação, incluindo Java, C++, e .NET.
O ZXing Decoder Online é uma ferramenta baseada na web que permite aos usuários escanear e decodificar imagens de códigos de barras e códigos QR. Além disso, os usuários podem criar códigos QR para qualquer informação, que geralmente está na forma de uma URL ou texto que eles queiram codificar.
Para usar o decodificador online ZXing, siga estas etapas:
- Visite o site do ZXing Decoder Online.

- Clique no botão 'Escolher Arquivo' para selecionar um arquivo de imagem de Código QR.
- Depois de selecionar a imagem, clique no botão 'Enviar'.

- Se um código reconhecível for encontrado, a ferramenta irá decodificar o Código QR e exibir as informações resultantes.
A biblioteca é fácil de usar e pode ser integrada em aplicativos web, aplicativos móveis e aplicativos de desktop.
ZXing foi amplamente adotado e tem uma grande comunidade de desenvolvedores contribuindo para seu desenvolvimento e fornecendo suporte.
A biblioteca coleta informações do dispositivo, como o modelo do dispositivo e a versão do sistema operacional, o que pode ser considerado um potencial risco de segurança.
Além disso, alguns levantaram preocupações sobre a propriedade e controle da biblioteca, uma vez que não é mantida por uma organização independente.
No geral, ZXing é uma biblioteca poderosa e versátil para geração e decodificação de códigos de barras, com adoção generalizada e suporte da comunidade.
Para gerar um código QR usando ZXing, por exemplo, os desenvolvedores só precisam escrever algumas linhas de código:
using ZXing;
using ZXing.QrCode;
// Create a BarcodeWriter instance to generate QR codes
BarcodeWriter writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE // Set format to QR_CODE
};
// Generate a QR code with the text "Hello, ZXing!"
Bitmap qrCode = writer.Write("Hello, ZXing!");
using ZXing;
using ZXing.QrCode;
// Create a BarcodeWriter instance to generate QR codes
BarcodeWriter writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE // Set format to QR_CODE
};
// Generate a QR code with the text "Hello, ZXing!"
Bitmap qrCode = writer.Write("Hello, ZXing!");
Imports ZXing
Imports ZXing.QrCode
' Create a BarcodeWriter instance to generate QR codes
Private writer As New BarcodeWriter With {.Format = BarcodeFormat.QR_CODE}
' Generate a QR code with the text "Hello, ZXing!"
Private qrCode As Bitmap = writer.Write("Hello, ZXing!")
Para decodificar um código QR usando o projeto ZXing, os desenvolvedores podem usar o seguinte código:
using ZXing;
using ZXing.QrCode;
// Create a BarcodeReader instance for decoding QR codes
BarcodeReader reader = new BarcodeReader();
// Decode the QR code from a bitmap image
Result result = reader.Decode(qrCode);
// Extract the text from the decoded QR code
string text = result.Text;
using ZXing;
using ZXing.QrCode;
// Create a BarcodeReader instance for decoding QR codes
BarcodeReader reader = new BarcodeReader();
// Decode the QR code from a bitmap image
Result result = reader.Decode(qrCode);
// Extract the text from the decoded QR code
string text = result.Text;
Imports ZXing
Imports ZXing.QrCode
' Create a BarcodeReader instance for decoding QR codes
Private reader As New BarcodeReader()
' Decode the QR code from a bitmap image
Private result As Result = reader.Decode(qrCode)
' Extract the text from the decoded QR code
Private text As String = result.Text


Apresentando IronBarcode
IronBarcode é uma biblioteca poderosa de geração e leitura de códigos de barras para desenvolvedores .NET, criada pela Iron Software.
IronBarcode fornece uma API fácil de usar que permite aos desenvolvedores gerar e ler vários tipos de códigos de barras, incluindo códigos QR, códigos Data Matrix e códigos UPC-A.
A biblioteca IronBarcode foi criada pela Iron Software como uma maneira de estender a funcionalidade da biblioteca ZXing.NET.

Ela adiciona novos recursos e funcionalidades, como a capacidade de gerar códigos de barras 2D, códigos de barras PDF417 e a capacidade de ler códigos de barras diretamente de arquivos de imagem.
Aqui está um exemplo de como gerar um código QR usando IronBarcode:
using IronBarCode;
// Generate a QR code with the text "Hello, IronBarcode!"
var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
// Save the generated QR code as a PNG image
barcode.SaveAsImage("qrcode.png");
using IronBarCode;
// Generate a QR code with the text "Hello, IronBarcode!"
var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
// Save the generated QR code as a PNG image
barcode.SaveAsImage("qrcode.png");
Imports IronBarCode
' Generate a QR code with the text "Hello, IronBarcode!"
Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
' Save the generated QR code as a PNG image
barcode.SaveAsImage("qrcode.png")

Para ler um código de barras usando IronBarcode, você pode usar o seguinte código:
using IronBarCode;
// Read the QR code from the image file "qrcode.png"
var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
// Extract the text from the decoded QR code
string text = barcode.Text;
using IronBarCode;
// Read the QR code from the image file "qrcode.png"
var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
// Extract the text from the decoded QR code
string text = barcode.Text;
Imports IronBarCode
' Read the QR code from the image file "qrcode.png"
Private barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode)
' Extract the text from the decoded QR code
Private text As String = barcode.Text

IronBarcode suporta uma ampla gama de tipos de código de barras, incluindo 2D Barcode, UPC-A, UPC-E, EAN-8, EAN-13, Code39, Code128, PDF417, e muitos mais.
Ele baseia-se nos pontos fortes da biblioteca ZXing.NET, fornecendo uma leitura e geração de códigos de barras mais rápida e precisa, além de adicionar novos recursos e funcionalidades.
Como Usar IronBarcode
Aqui estão algumas etapas sobre como usar IronBarcode:
Etapa 1: Instalar a Biblioteca IronBarcode
Para usar IronBarcode em seu projeto .NET, você primeiro precisa instalar a biblioteca IronBarcode usando o NuGet. Você pode fazer isso executando o seguinte comando no Console do Gerenciador de Pacotes NuGet:
Install-Package BarCode
Etapa 2: Gerar um Código de Barras
Para gerar um código de barras usando IronBarcode, você pode usar a classe BarcodeWriter.
using IronBarCode;
// Generate a QR code with the text "Hello, IronBarcode!"
var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
// Save the generated QR code as an image file
barcode.SaveAsImage("qrcode.png");
using IronBarCode;
// Generate a QR code with the text "Hello, IronBarcode!"
var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
// Save the generated QR code as an image file
barcode.SaveAsImage("qrcode.png");
Imports IronBarCode
' Generate a QR code with the text "Hello, IronBarcode!"
Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
' Save the generated QR code as an image file
barcode.SaveAsImage("qrcode.png")
Este código cria um código QR com o texto "Hello, IronBarcode!" e o salva como um arquivo de imagem chamado "qrcode.png".
Etapa 3: Ler um Código de Barras
Para escanear um código de barras usando o IronBarcode, você pode usar a classe BarcodeReader.
using IronBarCode;
// Read the QR code from the image file "qrcode.png"
var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
// Extract the text from the decoded QR code
string text = barcode.Text;
using IronBarCode;
// Read the QR code from the image file "qrcode.png"
var barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode);
// Extract the text from the decoded QR code
string text = barcode.Text;
Imports IronBarCode
' Read the QR code from the image file "qrcode.png"
Private barcode = BarcodeReader.ReadBarcode("qrcode.png", BarcodeEncoding.QRCode)
' Extract the text from the decoded QR code
Private text As String = barcode.Text
Este código lê o código QR do arquivo de imagem "qrcode.png" e retorna o texto que foi codificado no código de barras.

Etapa 4: Personalizar o Código de Barras
IronBarcode fornece uma gama de opções de personalização que permitem controlar a aparência e o comportamento da implementação de leitura de códigos de barras gerados.
Aqui está um exemplo de como personalizar um código QR usando IronBarcode para a implementação de leitura de códigos de barras:
using IronBarCode;
// Customize a QR code
var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
barcode.ResizeTo(400, 400); // Resize the barcode
barcode.SetMargins(20); // Set margins around the barcode
barcode.SetForegroundColor(Color.Black); // Set the foreground color
barcode.SetBackgroundColor(Color.White); // Set the background color
barcode.AddCaptionAbove("Scan me with your smartphone!"); // Add a caption above the barcode
barcode.AddImageLogo("logo.png", 80, 80); // Add a logo to the barcode
barcode.SaveAsImage("qrcode.png"); // Save the customized barcode as an image
using IronBarCode;
// Customize a QR code
var barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode);
barcode.ResizeTo(400, 400); // Resize the barcode
barcode.SetMargins(20); // Set margins around the barcode
barcode.SetForegroundColor(Color.Black); // Set the foreground color
barcode.SetBackgroundColor(Color.White); // Set the background color
barcode.AddCaptionAbove("Scan me with your smartphone!"); // Add a caption above the barcode
barcode.AddImageLogo("logo.png", 80, 80); // Add a logo to the barcode
barcode.SaveAsImage("qrcode.png"); // Save the customized barcode as an image
Imports IronBarCode
' Customize a QR code
Private barcode = BarcodeWriter.CreateBarcode("Hello, IronBarcode!", BarcodeWriterEncoding.QRCode)
barcode.ResizeTo(400, 400) ' Resize the barcode
barcode.SetMargins(20) ' Set margins around the barcode
barcode.SetForegroundColor(Color.Black) ' Set the foreground color
barcode.SetBackgroundColor(Color.White) ' Set the background color
barcode.AddCaptionAbove("Scan me with your smartphone!") ' Add a caption above the barcode
barcode.AddImageLogo("logo.png", 80, 80) ' Add a logo to the barcode
barcode.SaveAsImage("qrcode.png") ' Save the customized barcode as an image
Este código gera um código QR com o texto "Hello, IronBarcode!" e o personaliza redimensionando-o para 400x400 pixels, adicionando margens de 20 pixels, definindo a cor do primeiro plano como preto e a cor de fundo como branco, adicionando uma legenda acima do código de barras e adicionando uma imagem de logotipo.
O Que IronBarcode Pode Fazer
IronBarcode é construído sobre a biblioteca de código aberto ZXing, mas estende suas capacidades para suportar uma gama mais ampla de tipos de códigos de barras, incluindo códigos QR, Code 128, Code 39, EAN-13, EAN-8, UPC-A, e muitos mais.
Aqui estão algumas das coisas que IronBarcode pode fazer:
Gerar Códigos de Barras
IronBarcode pode facilmente gerar códigos de barras de vários tipos e estilos, incluindo códigos de barras lineares e 2D, com recursos personalizáveis como cores, texto e sobreposições de imagem. O seguinte trecho de código gera um Código QR:
var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode);
barcode.SaveAsJpeg("QRCode.jpg");
var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode);
barcode.SaveAsJpeg("QRCode.jpg");
Dim barcode = IronBarCode.BarcodeWriter.CreateBarcode("Hello World!", IronBarCode.BarcodeWriterEncoding.QRCode)
barcode.SaveAsJpeg("QRCode.jpg")

Ler Códigos de Barras
IronBarcode também fornece um poderoso scanner de códigos de barras que pode ler códigos de barras de imagens, PDFs e transmissões de câmeras ao vivo. O seguinte código lê um Código QR a partir de um arquivo de imagem:
var barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode);
Console.WriteLine(barcode.Text);
var barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode);
Console.WriteLine(barcode.Text);
Dim barcode = IronBarCode.BarcodeReader.Read("QRCode.jpg", IronBarCode.BarcodeReaderEncoding.QRCode)
Console.WriteLine(barcode.Text)

Validar Códigos de Barras
IronBarcode também pode validar códigos de barras para garantir que eles sejam válidos e possam ser lidos por outros leitores de códigos de barras. O seguinte trecho de código valida um código de barras Code 128:
var barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128);
// Check if the barcode is valid
if (barcode.IsValid)
{
Console.WriteLine("Barcode is valid.");
}
else
{
Console.WriteLine("Barcode is invalid.");
}
var barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128);
// Check if the barcode is valid
if (barcode.IsValid)
{
Console.WriteLine("Barcode is valid.");
}
else
{
Console.WriteLine("Barcode is invalid.");
}
Dim barcode = IronBarCode.BarcodeReader.Read("Code128.jpg", IronBarCode.BarcodeReaderEncoding.Code128)
' Check if the barcode is valid
If barcode.IsValid Then
Console.WriteLine("Barcode is valid.")
Else
Console.WriteLine("Barcode is invalid.")
End If
Converter Códigos de Barras
IronBarcode pode converter códigos de barras de um formato para outro, como converter um código de barras Code 39 para um Código QR. O seguinte trecho de código converte um código de barras Code 39 para um Código QR:
var barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39);
var qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode);
qrCode.SaveAsJpeg("QRCode.jpg");
var barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39);
var qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode);
qrCode.SaveAsJpeg("QRCode.jpg");
Dim barcode = IronBarCode.BarcodeReader.Read("Code39.jpg", IronBarCode.BarcodeReaderEncoding.Code39)
Dim qrCode = IronBarCode.BarcodeWriter.CreateBarcode(barcode.Text, IronBarCode.BarcodeWriterEncoding.QRCode)
qrCode.SaveAsJpeg("QRCode.jpg")
Como IronBarcode é Melhor que o ZXing Decoder Online
Aqui estão algumas maneiras pelas quais o IronBarcode é melhor do que o ZXing:
- Desempenho: IronBarcode é mais rápido que o ZXing, tornando-o uma excelente escolha para aplicativos web que exigem digitalização e geração de códigos de barras em alta velocidade.
- Facilidade de uso: A API do IronBarcode é simples e intuitiva, facilitando a criação e digitalização de códigos de barras em apenas algumas linhas de código. Por outro lado, a API do ZXing pode ser complexa e difícil de usar para iniciantes.
- Qualidade de saída: IronBarcode produz códigos de barras de alta qualidade que são fáceis de ler, mesmo em tamanhos pequenos. Em contraste, os códigos de barras do ZXing às vezes podem ser difíceis de ler, especialmente em tamanhos menores.
- Formatos suportados: IronBarcode suporta uma ampla gama de formatos de código de barras, incluindo UPC-A, códigos de barras 2D e mais. Em comparação, o projeto ZXing suporta apenas um número limitado de formatos de código de barras.
- Licenciamento: IronBarcode oferece um modelo de licenciamento flexível que permite aos desenvolvedores usar a biblioteca gratuitamente ou comprar uma licença dependendo de suas necessidades. Em contraste, o licenciamento do ZXing é restritivo, dificultando para os desenvolvedores o uso da biblioteca em projetos comerciais.

IronBarcode é uma biblioteca superior ao ZXing quando se trata de desempenho, facilidade de uso, qualidade de saída, formatos suportados e licenciamento.
Veja Você Mesmo a Superioridade do IronBarcode
Experimente tudo o que o IronBarcode tem a oferecer com a demonstração gratuita de Leitura de Código de Barras abaixo.
IronBarcode Também Oferece um Teste Gratuito
Quer experimentar o IronBarcode e ver como ele pode aprimorar suas capacidades de digitalização e geração de códigos de barras? Estamos entusiasmados em oferecer um teste grátis do IronBarcode para você testar seus recursos e benefícios.
Durante o período de teste, você terá acesso completo a todos os recursos poderosos do IronBarcode, incluindo suporte para uma ampla gama de formatos de código de barras, opções avançadas de personalização e integração perfeita com seus projetos existentes.
Para iniciar seu teste, basta visitar nosso site e baixar o pacote IronBarcode. Você terá então um teste grátis para explorar tudo o que o IronBarcode tem a oferecer e ver em primeira mão como ele pode simplificar seus fluxos de trabalho de digitalização e geração de códigos de barras.
Perguntas frequentes
Quais são as limitações do uso do ZXing para leitura de código de barras?
ZXing é uma biblioteca popular de código aberto para leitura de códigos de barras, mas sua integração pode ser complexa e apresentar potenciais riscos de segurança. Seu suporte a formatos também é limitado em comparação com alternativas comerciais como o IronBarcode.
Como posso decodificar um código QR em .NET?
É possível decodificar um código QR em .NET usando o IronBarcode, aproveitando sua classe BarcodeReader , que oferece uma API simples para leitura e interpretação de imagens de código de barras.
Quais são as vantagens de usar o IronBarcode em vez do ZXing?
O IronBarcode oferece uma experiência mais amigável ao usuário, com desempenho mais rápido, suporte a formatos mais amplos, incluindo Data Matrix e PDF417, e opções de personalização aprimoradas para a aparência do código de barras.
Como um desenvolvedor .NET pode gerar um código de barras com aparência personalizada?
Com o IronBarcode, os desenvolvedores podem personalizar códigos de barras redimensionando, definindo margens, alterando cores, adicionando legendas e sobrepondo imagens ou logotipos usando sua API flexível.
O que torna o IronBarcode uma ferramenta versátil para desenvolvedores .NET?
O IronBarcode é compatível com diversas plataformas sem dependências de terceiros, oferecendo um conjunto robusto de ferramentas para geração e leitura de códigos de barras, incluindo amplas opções de personalização e formato.
Como faço para integrar uma biblioteca de código de barras em um aplicativo .NET?
Para integrar o IronBarcode em uma aplicação .NET, instale-o via NuGet e utilize sua API para gerar e ler códigos de barras de forma eficiente com configuração mínima.
Posso experimentar o IronBarcode antes de comprar?
Sim, você pode baixar uma versão de avaliação gratuita do IronBarcode no site da Iron Software, que oferece acesso completo a todos os seus recursos durante o período de avaliação.
Quais são as vantagens das bibliotecas comerciais de códigos de barras?
Bibliotecas comerciais de código de barras, como o IronBarcode, oferecem melhor desempenho, facilidade de uso, maior qualidade de saída, suporte a formatos mais amplo e licenciamento mais flexível em comparação com alternativas de código aberto.

