Ir para o conteúdo do rodapé
USANDO O IRONBARCODE
Como ler um leitor de código de barras em um aplicativo Windows em C#

Como usar leitores de código de barras em aplicativos C# para Windows

Este tutorial demonstrará como escanear códigos QR e códigos de barras em Aplicações de Console C# e Aplicações de Formulários Windows .NET, usando a biblioteca IronBarcode como exemplo.

Usando a biblioteca IronBarcode, múltiplos códigos de barras podem ser escaneados e lidos simultaneamente, e também pode escanear imagens imperfeitas com sucesso. Vamos primeiro esclarecer o que é um scanner de código de barras.

O que é um Scanner de Código de Barras?

Um código de barras é uma imagem quadrada ou retangular que consiste em uma série de linhas pretas paralelas e espaços brancos de várias larguras. Um scanner ou leitor de código de barras é um dispositivo que pode ler códigos de barras impressos, decodificar os dados contidos no código de barras e enviar os dados para um computador.

Os passos a seguir introduzirão como criar um scanner de código de barras com a ajuda da Biblioteca IronBarcode.

Como Ler Códigos de Barras em C#

  • Crie um projeto de Aplicação de Formulários Windows .NET no Microsoft Visual Studio
  • Instale a biblioteca de código de barras
  • Leia qualquer código de barras ou QR code
  • Leia múltiplos códigos de barras ou QR codes em uma única varredura
  • Permita que o IronBarcode leia a partir de varreduras e fotos imperfeitas

1. Criar uma Aplicação de Formulários Windows no Microsoft Visual Studio

Abra o Visual Studio > Clique em Criar Novo Projeto > Selecione Template de Aplicação de Formulários Windows > Pressione Avançar > Nomeie o Projeto > Pressione Avançar > Selecione seu .NET Framework alvo > Clique no botão Criar.

Após criar o projeto, projete o formulário como segue a partir da caixa de ferramentas do Visual Studio: controles PictureBox, Label, TextBox e Button.

Como Usar Scanners de Código de Barras em Aplicativos Windows C#, Figura 1: Scanner de Código de Barras Scanner de Código de Barras

2. Instalar a Biblioteca de Código de Barras .NET em C#

A Biblioteca de Código de Barras pode ser instalada usando um dos três métodos a seguir:

1. Console do Gerenciador de Pacotes

Escreva o seguinte comando na Console do Gerenciador de Pacotes. Ele fará o download e instalará o pacote para você.

Install-Package BarCode

2. Solução do Gerenciador de Pacotes NuGet

Você também pode instalar a Biblioteca de Código de Barras usando a Solução de Pacote NuGet. Basta seguir estes passos:

Clique em Ferramentas > Gerenciador de Pacotes NuGet > Gerenciar Pacotes NuGet para Solução.

Isso abrirá o Gerenciador de Pacotes NuGet para você. Clique em Navegar e pesquise por Código de Barras, depois instale a biblioteca de classes.

Como alternativa, o IronBarCode.Dll pode ser baixado e adicionado ao seu projeto como referência.

Após baixar, adicione as seguintes referências ao seu projeto de leitor de código de barras.

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

3. Leia qualquer Código de Barras ou QR Code

Ler um código de barras ou QR code no .NET é incrivelmente fácil usando a biblioteca IronBarcode com Leitor de Código de Barras .NET.

Scanner de Código de Barras

No seu projeto, procure pela imagem que deseja ler. Ele abrirá em PictureBox; agora clique em "escanear código". O texto aparecerá na caixa de texto.

Aqui está o código para o botão "navegar" para abrir uma imagem:

// Open file dialog   
OpenFileDialog open = new OpenFileDialog();
// Image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    // Display image in PictureBox
    pictureBox1.Image = new Bitmap(open.FileName); 
    // Store image file path in class data member. Initialize it as string ImageFileName;
    ImageFileName = open.FileName; 
}
// Open file dialog   
OpenFileDialog open = new OpenFileDialog();
// Image filters  
open.Filter = "Image Files(*.jpg; *.png; *.jpeg; *.gif; *.bmp)|*.jpg;*.png;*.jpeg;*.gif;*.bmp";
if (open.ShowDialog() == DialogResult.OK) {  
    // Display image in PictureBox
    pictureBox1.Image = new Bitmap(open.FileName); 
    // Store image file path in class data member. Initialize it as string ImageFileName;
    ImageFileName = open.FileName; 
}
$vbLabelText   $csharpLabel

O código para o botão "escanear código":

// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;
// Read the barcode from the image file path
BarcodeResult Result = BarcodeReader.Read(ImageFileName);
// Display the decoded text in TextBox
textBox1.Text = Result.Text;
$vbLabelText   $csharpLabel

O scanner de código de barras exibe os dados do código de barras na caixa de texto conforme mostrado:

Como Usar Scanners de Código de Barras em Aplicativos Windows C#, Figura 2: Imagem de Código de Barras a ser Escaneada com C# Imagem de Código de Barras a Ser Escaneada com C#

Scanner de Código QR

Nesta seção, a Biblioteca IronBarcode lida efetivamente com situações do mundo real envolvendo códigos QR desalinhados. Embora o código QR em ângulo inclinado possa ser tratado e lido pelo método Read, ele pode, no entanto, levar mais tempo para resolver. A biblioteca IronBarcode fornece uma maneira personalizada de usar BarcodeReaderOptions como um parâmetro extra para lidar com tal entrada de imagem. O código é o seguinte:

// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
    ImageFilters = filtersToApply,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};

// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
// Define a collection of image filters to apply
var filtersToApply = new ImageFilterCollection() {
    new SharpenFilter(),
    new InvertFilter(),
    new ContrastFilter(),
    new BrightnessFilter(),
    new AdaptiveThresholdFilter(),
    new BinaryThresholdFilter()
};

// Configure barcode reader options with specified filters
BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions() {
    ImageFilters = filtersToApply,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
};

// Read the barcode/QR code with custom options and display result
BarcodeResult Result = BarcodeReader.Read(ImageFileName, myOptionsExample);
textBox1.Text = Result.Text;
$vbLabelText   $csharpLabel

A saída será a seguinte após abrir a imagem do código QR inclinado:

Como Usar Scanners de Código de Barras em Aplicativos Windows C#, Figura 4: Imagem de Código QR Inclinado Imagem de QrCode Inclinado

Lendo Múltiplos Códigos de Barras em Uma Única Varredura

Documentos PDF

Imagens de código de barras podem ser escaneadas de um arquivo PDF, e cada resultado pode ser exibido adequadamente conforme desejado. O seguinte código de exemplo permite que você leia vários códigos de barras de um arquivo PDF.

// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");

// Work with the results found
foreach (var PageResult in PDFResults) { 
    string Value = PageResult.Value;
    int PageNum = PageResult.PageNumber;
    System.Drawing.Bitmap Img = PageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PageResult.BarcodeType;
    byte[] Binary = PageResult.BinaryValue;
    Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
// Scan for multiple barcodes within a PDF document
BarcodeResult[] PDFResults = BarcodeReader.ReadPdf("MultipleBarcodes.pdf");

// Work with the results found
foreach (var PageResult in PDFResults) { 
    string Value = PageResult.Value;
    int PageNum = PageResult.PageNumber;
    System.Drawing.Bitmap Img = PageResult.BarcodeImage;
    BarcodeEncoding BarcodeType = PageResult.BarcodeType;
    byte[] Binary = PageResult.BinaryValue;
    Console.WriteLine(PageResult.Value + " on page " + PageNum);
}
$vbLabelText   $csharpLabel

Código de barras e código QR presentes em arquivos PDF:

Como Usar Scanners de Código de Barras em Aplicativos Windows C#, Figura 3: C# - Lendo Códigos de Barras de um PDF resultados C# - Resultados de Leitura de Códigos de Barras de um PDF

Lendo Códigos de Barras de Imagens Imperfeitas

Em casos de uso do mundo real, os códigos de barras são frequentemente encontrados com imperfeições em imagens, digitalizações, miniaturas ou fotografias, e podem conter ruído digital ou estar inclinados. Esta seção demonstra como ler dados de código de barras de miniaturas.

Miniaturas

A Biblioteca IronBarcode usa o C# Barcode Generator, que é capaz até mesmo de ler uma miniatura corrompida de um código de barras.

Como Usar Leitores de Código de Barras em Aplicação Windows C#, Figura 5: Correção automática de tamanho de miniatura de código de barras. Arquivo legível usando IronBarcode em C# Correção automática de tamanho de miniatura de código de barras. Arquivo legível usando IronBarcode em C#

Ele detecta automaticamente imagens de código de barras que são muito pequenas para representar razoavelmente um código de barras real e, em seguida, aumenta e limpa todo o ruído digital associado à miniatura, permitindo assim que sejam legíveis novamente.

// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
// Small or 'Thumbnail' barcode images are automatically detected by IronBarCode and corrected for wherever possible even if they have much digital noise.
BarcodeResult SmallResult = BarcodeReader.Read("ThumbnailOfBarcode.gif");
$vbLabelText   $csharpLabel

Resumo

IronBarcode é uma biblioteca de software .NET versátil e C# QR Code Generator para escanear e ler uma ampla variedade de formatos de imagem de código de barras, e pode fazer isso independentemente de esses códigos de barras serem capturas de tela perfeitas ou serem, na verdade, fotografias, scans ou outras imagens imperfeitas do mundo real. Além disso, IronBarcode oferece uma ampla gama de opções de personalização para melhorar a velocidade de leitura de código de barras, como regiões de corte ou multithreading, e a precisão do modelo de ML. Visite a página oficial de documentos para mais informações sobre IronBarcode.

Atualmente, se você comprar a Iron Suite completa, pode obter cinco bibliotecas pelo preço de apenas duas.

Perguntas frequentes

O que é um leitor de código de barras no contexto de aplicações C#?

Um leitor de código de barras é um dispositivo que lê códigos de barras impressos, decodifica as informações e as envia para um computador. Em aplicações C#, essa funcionalidade pode ser implementada usando bibliotecas como o IronBarcode.

Como posso criar um aplicativo Windows Forms para leitura de código de barras usando C#?

Para criar um aplicativo Windows Forms para leitura de código de barras em C#, abra o Visual Studio, crie um novo projeto usando o modelo 'Windows Forms Application', configure o .NET Framework de destino e use controles como PictureBox, Label, TextBox e Button para projetar o formulário.

Qual é o método recomendado para instalar uma biblioteca de código de barras em um projeto C#?

Você pode instalar uma biblioteca de código de barras como o IronBarcode em um projeto C# através do Console do Gerenciador de Pacotes com o Install-Package IronBarCode , pelo Gerenciador de Pacotes NuGet ou baixando a DLL e adicionando-a como uma referência.

É possível ler vários códigos de barras em uma única leitura usando uma biblioteca C#?

Sim, usando o IronBarcode, você pode ler vários códigos de barras em uma única leitura com o método BarcodeReader.ReadPdf , inclusive em documentos PDF.

Como a biblioteca consegue ler códigos de barras em imagens de baixa qualidade?

O IronBarcode consegue interpretar códigos de barras a partir de imagens de baixa qualidade, aplicando filtros de imagem e técnicas de ampliação para reduzir o ruído digital, garantindo leituras precisas.

Quais formatos de código de barras são suportados por bibliotecas C# como o IronBarcode?

O IronBarcode suporta uma ampla variedade de formatos de código de barras, incluindo códigos QR e Code128. Ele consegue ler esses formatos mesmo que as imagens estejam imperfeitas ou tenham sido capturadas por uma câmera.

Quais são os passos para implementar a leitura de código de barras em uma aplicação .NET?

Para implementar a leitura de código de barras, carregue uma imagem em um PictureBox, acione a ação 'ler código' e use o IronBarcode para processar e exibir o texto decodificado em um TextBox.

O IronBarcode consegue lidar eficazmente com códigos QR desalinhados ou inclinados?

Sim, o IronBarcode consegue lidar eficazmente com códigos QR desalinhados, utilizando BarcodeReaderOptions para aplicar os filtros e ajustes de imagem necessários para uma leitura precisa.

Quais são as opções de personalização que o IronBarcode oferece para leitura de código de barras?

O IronBarcode oferece recursos como regiões de recorte, multithreading e ajustes de parâmetros para melhorar a velocidade e a precisão da leitura de códigos de barras.

Onde posso encontrar informações mais detalhadas sobre como usar bibliotecas de código de barras em C#?

Para obter informações mais detalhadas sobre como usar bibliotecas de código de barras em C#, você pode visitar a página de documentação oficial no site da Iron Software.

Curtis Chau
Redator Técnico

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 ...

Leia mais

Iron Support Team

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