Como gerar formatos de dados de código de barras em C#

Como Saída de Formatos de Dados em C# com IronBarcode

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode fornece múltiplos formatos de saída a partir de leituras de código de barras incluindo BarcodeImage, BarcodeType, BinaryValue, coordenadas, dimensões, números de página, orientação, propriedades de texto e valor. Esses formatos permitem o processamento programático de dados de códigos de barras para vários casos de uso.

Em vez de simplesmente ler o código de barras e imprimir valores no console, o IronBarcode oferece muito mais. Ele fornece vários formatos de saída que abrem caminho para os usuários processarem os resultados da leitura. Esses formatos incluem propriedades como imagem de código de barras, tipo de código de barras, BinaryValue, coordenadas, altura, largura, número de página, código de barras, orientação da página, texto e valor.

Os usuários podem manipular essas propriedades ainda mais dentro do programa. Vamos explorar como usar essas propriedades e casos de uso em que elas podem ser úteis.

Começo rápido: Ler valor e tipo do código de barras em uma linha

Este exemplo mostra como ler um código de barras a partir de uma imagem usando o IronBarcode – uma linha para carregar, depois imprimir imediatamente o valor e o tipo do código de barras. Perfeito para começar rapidamente. Para exemplos mais abrangentes, confira o guia de início rápido do código de barras.

  1. Instale IronBarcode com o Gerenciador de Pacotes NuGet

    PM > Install-Package BarCode
  2. Copie e execute este trecho de código.

    var result = IronBarCode.BarcodeReader.Read("input.png");
    Console.WriteLine($"Value: {result[0].Value}, Type: {result[0].BarcodeType}");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronBarcode em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Quais são os formatos de saída disponíveis e seus casos de uso?

BarcodeResult armazena várias propriedades úteis. Estas propriedades estão listadas abaixo:

  • BarcodeImage
  • BarcodeType
  • BinaryValue
  • Coordenadas, Altura e Largura
  • PageNumber
  • Barcode e PageOrientation
  • Texto e Valor

Cada propriedade serve para propósitos específicos em fluxos de trabalho de processamento de códigos de barras. Seja construindo um sistema de gerenciamento de inventário, pipeline de processamento de documentos ou aplicação de controle de qualidade, esses formatos de dados fornecem a flexibilidade necessária para ler códigos de barras de várias fontes.

Como posso extrair e salvar imagens de códigos de barras?

Uma vez que IronBarcode lê uma imagem, os códigos de barras encontrados na imagem são armazenados em BarcodeResult como a propriedade BarcodeImage do tipo AnyBitmap. A propriedade BarcodeImage armazena as imagens de código de barras encontradas. Os usuários podem recuperar este objeto para processar a imagem mais à frente ou salvá-la como uma cópia permanente. Isso proporciona eficiência e facilidade de uso ao eliminar código adicional para extrair imagens de códigos de barras de uma imagem.

Veja o trecho de código abaixo que demonstra um possível caso de uso para este formato de saída:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeImage.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Collections.Generic;

// Read barcode from PDF file
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Create list for barcodes
List<AnyBitmap> barcodeList = new List<AnyBitmap>();

foreach (BarcodeResult barcode in result)
{
    barcodeList.Add(barcode.BarcodeImage);
}

// Create multi-page TIFF
AnyBitmap.CreateMultiFrameTiff(barcodeList).SaveAs("barcodeImages.tif");
$vbLabelText   $csharpLabel

O trecho de código acima ilustra um caso de uso para este formato de saída. Especificamente, cria uma imagem TIFF multipágina a partir de códigos de barras detectados dentro de um documento PDF. Primeiro, escaneamos ou detectamos códigos de barras no PDF de amostra. Então, criamos uma lista de AnyBitmap onde armazenamos as informações da propriedade BarcodeImage. Finalmente, usamos esta lista para gerar um TIFF de várias páginas usando o método CreateMultiFrameTiff. Esta técnica é particularmente útil ao processar arquivos GIF e TIFF multipágina.

BarcodeImage propriedade de BarcodeResult armazena apenas as imagens de códigos de barras encontradas durante a leitura, não a imagem de entrada completa.

Como eu identifico diferentes tipos de códigos de barras programaticamente?

Esta propriedade ajuda a determinar que tipo de código de barras está presente na imagem ou documento de entrada. No entanto, a limitação é que o tipo de código de barras dentro da imagem deve ser suportado e legível pelo IronBarcode. Para saber mais sobre os tipos de códigos de barras suportados no IronBarcode, consulte este artigo. Além disso, explore a lista completa de formatos de códigos de barras suportados para garantir a compatibilidade com seus requisitos específicos.

O trecho de código abaixo demonstra como recuperar valores de código de barras e o tipo de código de barras em uma imagem imprimindo os valores no console.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BarcodeType.cs
using IronBarCode;
using System;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("bc3.png");

// Output barcode type to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value is " + barcode.ToString() + " and the barcode type is " + barcode.BarcodeType);
}
$vbLabelText   $csharpLabel

A partir do trecho de código acima, realizamos a leitura do código de barras chamando o método BarcodeReader.Read() na imagem de entrada. Isso retorna um objeto BarcodeResults que armazena todos os BarcodeResult da leitura de todos os códigos de barras disponíveis na imagem. Em seguida, iteramos pelo objeto BarcodeResults para recuperar o BarcodeResult e obter o valor e o tipo do código de barras impressos no console. Esta abordagem funciona perfeitamente com vários tipos de códigos de barras, incluindo formatos especializados como códigos de barras Code 39.

Quando devo usar a saída de valor binário?

Usando IronBarcode, os usuários podem recuperar a matriz de bytes do valor do código de barras acessando a propriedade BinaryValue do objeto BarcodeResult. Isso permite que os usuários manipulem ainda mais o valor do código de barras dentro do programa. A saída de valor binário é particularmente útil ao trabalhar com dados criptografados, anexos de arquivos codificados em códigos de barras, ou ao integrar com sistemas que requerem processamento de dados em nível de byte.

O trecho de código abaixo demonstra um caso de uso para recuperar o valor do código de barras como dados binários:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-BinaryValue.cs
using IronBarCode;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

int i = 1;
foreach (BarcodeResult barcode in result)
{
    var binaryValue = barcode.BinaryValue;
    var barcodeType = IronBarCode.BarcodeEncoding.QRCode;

    // Create QR code
    GeneratedBarcode generatedBarcode = BarcodeWriter.CreateBarcode(binaryValue, barcodeType);

    // Export QR code
    generatedBarcode.SaveAsPng($"qrFromBinary{i}.png");
    i++;
}
$vbLabelText   $csharpLabel

Observando o trecho de código acima, criamos um programa simples que transforma múltiplos códigos de barras dentro de uma imagem em arquivos novos codificados em binário. Inicialmente, escaneamos os códigos de barras na imagem de amostra PNG. Uma vez que detectamos esses códigos de barras, iteramos por eles, acessamos a propriedade BinaryValue e a usamos para criar novos arquivos binários. Esta técnica é especialmente valiosa quando você precisa ler múltiplos códigos de barras e processar seus dados binários individualmente.

Como posso acessar a localização e dimensões do código de barras?

Outra propriedade do objeto BarcodeResult que os usuários podem acessar são as coordenadas do código de barras, incluindo X1, Y1, X2, Y2, bem como suas Height e Width dentro de um arquivo de imagem ou documento. Essas propriedades são úteis quando os usuários precisam recuperar informações sobre a localização e dimensões do código de barras. Esta informação espacial é crucial para aplicações que exigem posicionamento preciso, como processamento automatizado de documentos, sistemas de controle de qualidade ou ao implementar regiões de recorte para otimização de escaneamento de códigos de barras.

Vamos demonstrar a localização e dimensões do código de barras.

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-height-width.cs
using IronBarCode;
using IronSoftware.Drawing;
using System.Linq;

// Read barcode from PNG
BarcodeResults result = BarcodeReader.Read("multiple-barcodes.png");

AnyBitmap bitmap = AnyBitmap.FromFile("multiple-barcodes.png");

foreach (BarcodeResult barcode in result)
{
    PointF[] barcodePoints = barcode.Points;

    float x1 = barcodePoints.Select(b => b.X).Min();
    float y1 = barcodePoints.Select(b => b.Y).Min();

    Rectangle rectangle = new Rectangle((int)x1, (int)y1, (int)barcode.Width!, (int)barcode.Height!);

    bitmap = bitmap.Redact(rectangle, Color.Magenta);

    // Save the image
    bitmap.SaveAs("redacted.png", AnyBitmap.ImageFormat.Png);
}
$vbLabelText   $csharpLabel
Three barcode samples (A, B, C) showing different encoded data with similar visual patterns
Three redacted content blocks with illegible text fragments

O trecho de código acima redige múltiplos códigos de barras encontrados em um arquivo de imagem. Para conseguir isso, usamos uma combinação de duas bibliotecas, IronBarcode e IronDrawing. Para obter o objeto BarcodeResult e extrair as propriedades dele, primeiro lemos os códigos de barras disponíveis em um arquivo de imagem usando o método BarcodeReader.Read(). Concomitantemente, o arquivo de imagem de entrada precisa ser convertido em um objeto AnyBitmap para aplicar o método de redação à imagem. Uma vez que temos o objeto BarcodeResults, podemos aplicar um loop e iterar por ele para obter X1, Y1, Width e Height de cada código de barras disponível na imagem e usá-los nas propriedades CropRectangle do método AnyBitmap.Redact().

Por que o número da página é importante para documentos com várias páginas?

Os usuários podem recuperar o número da página na qual o código de barras foi encontrado. Este é um recurso útil para usuários que utilizam um documento com várias páginas que contém múltiplos códigos de barras e precisam saber a localização dos códigos de barras encontrados no documento para processamento posterior. Essa funcionalidade é essencial ao ler códigos de barras de documentos PDF ou processar documentos em lote em aplicações empresariais.

Olhe o trecho de código abaixo:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-page-number.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page number to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine("The barcode value " + barcode.ToString() + " is found on page number " + barcode.PageNumber);
}
$vbLabelText   $csharpLabel

O trecho de código acima demonstra um caso de uso onde os usuários precisam que o programa retorne o valor dos códigos de barras encontrados em um documento PDF com várias páginas e seus respectivos números de página. O código usa o método BarcodeReader.ReadPdf() para ler os códigos de barras dentro de um documento PDF de várias páginas, o que retorna um objeto BarcodeResults armazenando cada BarcodeResult encontrado no documento. Aplicamos um loop e iteramos por cada item no objeto para recuperar o valor dos códigos de barras e o número da página onde os códigos de barras foram encontrados. Além desse caso de uso, os usuários podem usar essa propriedade para debug se todos os códigos de barras em um documento foram lidos.

ObserveO valor retornado dessa propriedade é baseado em 1, o que significa que a primeira página é sempre um e não zero

Como detectar a rotação do código de barras e a orientação da página?

Usando o IronBarcode, os usuários podem recuperar informações sobre a orientação do código de barras e a orientação da página onde o código de barras foi encontrado. Para extrair essas duas informações, acesse as propriedades Rotation e PageOrientation do objeto BarcodeResult. Rotation retorna um inteiro que representa o ângulo de rotação do código de barras encontrado. Este recurso funciona em conjunto com as capacidades de correção de orientação de imagem para garantir uma leitura precisa do código de barras, independentemente do ângulo de escaneamento.

Olhe o trecho de código abaixo:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-orientation.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("test.pdf");

// Output page orientation and rotation to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.PageOrientation);
    Console.WriteLine(barcode.Rotation);
}
$vbLabelText   $csharpLabel

O trecho de código acima foi executado com o PDF de exemplo anexado para provar que os usuários podem recuperar a orientação da página e a rotação do código de barras obtendo o valor de BarcodeResult.PageOrientation e BarcodeResult.Rotation, respectivamente. Este recurso é útil principalmente para fins de depuração.

ObserveIronBarcode só pode ler códigos de barras com rotações de 0, 90, 180 e 270 graus. IronBarcode não retornará nenhum valor se o código de barras tiver um valor de rotação diferente dos mencionados. PageOrientation retorna um objeto PageOrientation, que consiste em Portrait ou Landscape.

Qual é a diferença entre propriedades de Texto e Valor?

Claro, a principal propriedade que os usuários vão querer recuperar ao usar o IronBarcode é seu valor e texto. Essas duas propriedades são frequentemente usadas de forma intercambiável e retornam o mesmo valor. Além disso, os usuários podem usar o método BarcodeResult.ToString() para obter o mesmo resultado. Ao trabalhar com aplicações especializadas ou exportando dados de códigos de barras como fluxos, essas propriedades fornecem maneiras flexíveis de acessar o conteúdo do código de barras no formato de sua preferência.

O trecho de código abaixo demonstra:

:path=/static-assets/barcode/content-code-examples/how-to/output-data-formats-text-value.cs
using IronBarCode;
using System;

// Read barcode from PDF
BarcodeResults result = BarcodeReader.ReadPdf("barcodestamped3.pdf");

// Output text value to console
foreach (BarcodeResult barcode in result)
{
    Console.WriteLine(barcode.Value);
    Console.WriteLine(barcode.Text);
    Console.WriteLine(barcode.ToString());
}
$vbLabelText   $csharpLabel

A partir do trecho de código acima, os usuários precisam de apenas algumas linhas de código para ler códigos de barras em uma imagem usando IronBarcode. Após iterar pelo BarcodeResults retornado pelo método BarcodeReader.Read(), exibimos no console o resultado de obter as propriedades Value e Text, assim como chamando o método BarcodeResult.ToString() para mostrar que todos retornam o mesmo valor.

Em resumo, o IronBarcode é uma API perfeita para os usuários realizarem múltiplas operações relacionadas a códigos de barras, não limitada a escrever e decodificar códigos de barras. Com vários formatos de dados de saída suportados, os usuários podem fazer muito mais com o objeto BarcodeResult retornado pelo IronBarcode.

Perguntas frequentes

Quais formatos de saída o leitor de código de barras em C# suporta?

O IronBarcode oferece diversos formatos de saída, incluindo BarcodeImage, BarcodeType, BinaryValue, coordenadas, dimensões, números de página, orientação, texto e propriedades de valor. Esses formatos permitem o processamento abrangente de dados de código de barras para várias aplicações .NET.

Como posso ler o valor de um código de barras em apenas uma linha de código?

Com o IronBarcode, você pode ler um código de barras em uma linha usando: var result = IronBarCode.BarcodeReader.Read('input.png'); Isso lhe dá acesso imediato ao valor e ao tipo do código de barras através de result[0].Value e result[0].BarcodeType.

Quais propriedades estão disponíveis em BarcodeResult?

O objeto BarcodeResult no IronBarcode contém propriedades como BarcodeImage, BarcodeType, BinaryValue, Coordinates, Height & Width, PageNumber, Barcode, PageOrientation, Text e Value, fornecendo dados abrangentes para fluxos de trabalho de processamento de código de barras.

Posso extrair e salvar imagens de código de barras após a leitura?

Sim, o IronBarcode armazena os códigos de barras encontrados como objetos AnyBitmap na propriedade BarcodeImage. Você pode recuperar esse objeto para processar a imagem posteriormente ou salvá-la como uma cópia permanente, eliminando a necessidade de código adicional para extrair imagens de código de barras.

Como faço para acessar as coordenadas e dimensões do código de barras?

O IronBarcode fornece dados de coordenadas, incluindo as posições x e y, bem como as dimensões de altura e largura para cada código de barras detectado. Essas propriedades são acessíveis através do objeto BarcodeResult para rastreamento preciso da localização do código de barras.

Qual a diferença entre propriedades de texto e propriedades de valor?

No IronBarcode, as propriedades Text e Value contêm os dados do código de barras. Essas propriedades fazem parte do objeto BarcodeResult e podem ser usadas de forma intercambiável para recuperar as informações decodificadas do código de barras.

Posso determinar em qual página um código de barras foi encontrado?

Sim, o IronBarcode inclui uma propriedade PageNumber no objeto BarcodeResult, permitindo identificar exatamente qual página de um documento com várias páginas ou PDF continha cada código de barras detectado.

Como posso identificar o tipo de código de barras detectado?

A propriedade BarcodeType no objeto BarcodeResult do IronBarcode identifica o formato específico do código de barras detectado (como QR Code, Code 128, etc.), permitindo o processamento específico do formato em sua aplicação.

Hairil Hashimi Bin Omar
Engenheiro de Software
Como todo grande engenheiro, Hairil é um ávido aprendiz. Ele está aprimorando seus conhecimentos em C#, Python e Java, usando esse conhecimento para agregar valor aos membros da equipe da Iron Software. Hairil ingressou na equipe da Iron Software vindo da Universiti Teknologi MARA, na Malásia, onde se formou em ...
Leia mais
Pronto para começar?
Nuget Downloads 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.