Leia o código de barras da imagem em C#

Você está procurando uma maneira de ler códigos de barras ou códigos QR de imagens programaticamente? Se você é um desenvolvedor e precisa criar seu próprio aplicativo de leitor de código de barras? Você veio ao lugar certo. Os códigos de barras são cruciais para o rastreamento preciso do estoque e entrega de produtos desde a fabricação até o ponto de venda. Podemos facilmente detectar, reconhecer e ler diferentes tipos de códigos de barras e códigos QR em aplicativos .NET. Neste artigo, mostraremos como ler um código de barras de uma imagem em C# seguindo apenas algumas etapas simples. Você pode usar este artigo como um guia passo a passo para desenvolver aplicativos de leitor de código de barras ou scanner.

Em primeiro lugar, vamos dar uma olhada na API C# Barcode Reader para ler os códigos de barras disponíveis na imagem de entrada. A seguir, vamos percorrer as etapas de como detectar, reconhecer e extrair dados de código de barras da imagem. Você encontrará etapas detalhadas e trechos de código. Por fim, forneceremos links úteis para aprimoramentos adicionais. Então vamos começar!

Os seguintes tópicos serão abordados neste artigo:

  1. API C# para ler código de barras da imagem
  2. Etapas para ler o código de barras de uma imagem
  3. Leia o código de barras do bitmap
  4. Leia o código de barras da imagem usando o fluxo
  5. Como ler o código de barras de um tipo específico
  6. Leia códigos de barras de vários tipos de uma imagem
  7. Detecte e leia conjuntos predefinidos de simbologias
  8. Detecte e leia vários códigos de barras de uma imagem
  9. Obtenha as coordenadas X e Y do código de barras
  10. Leia o código de barras da região específica da imagem
  11. Leia o código de barras de várias regiões da imagem

API C# para ler o código de barras da imagem

Para ler um código de barras de uma imagem, usaremos a API Aspose.BarCode for .NET. A API permite gerar, digitalizar e ler uma ampla variedade de simbologias de código de barras. Ele permite a renderização de imagens de código de barras nos formatos JPEG, TIFF, PNG, BMP e GIF.

A API fornece a classe BarCodeReader que permite o reconhecimento de mais de 60 tipos diferentes de códigos de barras de determinadas imagens. A primeira etapa na detecção de códigos de barras é especificar a origem de uma imagem com códigos de barras. Isso pode ser um arquivo, um objeto de bitmap ou um fluxo. É então necessário especificar as simbologias alvo dentro do parâmetro DecodeType. Podemos examinar todos os diferentes tipos de simbologias compatíveis especificando DecodeType.AllSupportedTypes. O método ReadBarCodes() desta classe retorna um array de códigos de barras reconhecidos. A classe BarCodeResult da API armazena os dados de código de barras reconhecidos, como tipo de código de barras, texto do código, região e outros parâmetros.

A API também permite especificar as regiões de uma imagem que o leitor de código de barras deve ler. Isso pode ser feito usando um objeto .NET Rectangle e permite evitar a necessidade de encontrar códigos de barras em áreas da imagem que não contêm códigos de barras por padrão.

Por favor, baixe a DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.BarCode 

Ler código de barras de uma imagem usando C#

Podemos ler facilmente um código de barras de uma imagem seguindo as etapas abaixo:

  1. Em primeiro lugar, carregue uma imagem usando a classe BarCodeReader.
  2. Chame o método readBarCodes() e obtenha os resultados de reconhecimento no objeto da classe BarCodeResult.
  3. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler um código de barras de uma imagem em C#.

// Este exemplo de código demonstra como ler o código de barras de um arquivo de imagem.
// Inicializar o leitor de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// Leia o código de barras e mostre os resultados
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Leia o código de barras de uma imagem.

Leia o código de barras de uma imagem em C#.

Leia o código de barras do bitmap em C#

Podemos ler facilmente um código de barras de uma imagem seguindo as etapas abaixo:

  1. Primeiramente, carregue uma imagem usando a classe Bitmap.
  2. Em seguida, crie uma instância da classe BarCodeReader com o objeto Bitmap.
  3. Chame o método ReadBarCodes() e obtenha os resultados do reconhecimento no objeto da classe BarCodeResult.
  4. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler um código de barras de bitmap em C#.

// Este exemplo de código demonstra como ler o código de barras do bitmap.
// Carregar imagem em Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// Inicializar leitor de código de barras
BarCodeReader reader = new BarCodeReader(bmp);

// Leia todos os códigos de barras na área fornecida
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Leia o código de barras da imagem bitmap em C#.

Leia o código de barras do Bitmap em C#.

Leia o código de barras da imagem usando o Stream em C#

Também podemos carregar a imagem do código de barras usando um fluxo de arquivo e ler um código de barras seguindo as etapas abaixo:

  1. Em primeiro lugar, carregue uma imagem usando a classe FileStream.
  2. Em seguida, crie uma instância da classe BarCodeReader com o objeto stream.
  3. Chame o método ReadBarCodes() e obtenha os resultados do reconhecimento no objeto da classe BarCodeResult.
  4. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler um código de barras da imagem usando Stream em C#.

// Este exemplo de código demonstra como ler o código de barras de uma imagem usando o fluxo de arquivo.
// Carregar imagem
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// Inicializar leitor de código de barras
BarCodeReader reader = new BarCodeReader(stream);

// Leia todos os códigos de barras na área fornecida
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

Leia o código de barras do tipo específico da imagem em C#

Recomenda-se selecionar simbologias de código de barras de destino que serão consideradas para reconhecimento, a fim de minimizar o tempo necessário para a conclusão do reconhecimento e evitar tentativas de reconhecer códigos de barras desatualizados.

Podemos especificar o tipo de código de barras de destino e ler o código de barras de uma imagem seguindo as etapas abaixo:

  1. Em primeiro lugar, carregue uma imagem usando a classe BarCodeReader.
  2. Em seguida, defina um tipo de decodificação de código de barras, como Code39Standard.
  3. Depois disso, obtenha os resultados do reconhecimento no objeto da classe BarCodeResult usando o método ReadBarCodes().
  4. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler um código de barras de um tipo específico de uma imagem usando C#.

// Este exemplo de código demonstra como ler o código de barras de um tipo de decodificação específico de uma imagem.
// Inicializar o leitor de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// Ler código de barras do tipo Code39Extended
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Reconhecer o código de barras de um tipo específico da imagem

Reconhecer código de barras de um tipo específico de imagem em C#.

Leia o código de barras de vários tipos da imagem em C#

Também podemos especificar vários tipos de código de barras seguindo as etapas abaixo:

  1. Em primeiro lugar, carregue uma imagem usando a classe BarCodeReader.
  2. Em seguida, defina os tipos de decodificação de um código de barras usando o método SetBarCodeReadType().
  3. Depois disso, obtenha os resultados do reconhecimento no objeto da classe BarCodeResult usando o método ReadBarCodes().
  4. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler códigos de barras de vários tipos de uma imagem usando C#.

// Este exemplo de código demonstra como ler o código de barras de vários tipos de decodificação de uma imagem.
// Inicializar o leitor de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// Ler códigos de barras
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Leia códigos de barras de vários tipos de imagem em C#

Leia códigos de barras de vários tipos de imagem em C#

Também podemos especificar vários tipos de decodificação no construtor da classe BarCodeReader conforme mostrado abaixo:

BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

Leia o conjunto predefinido de tipos de código de barras da imagem em C#

Podemos ler um conjunto predefinido de simbologias para reconhecimento definido na classe DecodeTypes. Podemos definir qualquer um dos seguintes conjuntos predefinidos:

  • AllSupportedTypes - todos os tipos de código de barras suportados
  • Types1D - todas as simbologias 1D suportadas
  • Types2D - todas as simbologias 2D suportadas
  • PostalTypes - todas as simbologias postais suportadas que são usadas principalmente pelos serviços postais
  • MostCommonTypes - um conjunto de padrões de código de barras mais amplamente usados definidos

Podemos especificar um conjunto predefinido seguindo as etapas abaixo:

  1. Em primeiro lugar, em primeiro lugar, carregue uma imagem usando a classe BarCodeReader.
  2. Em seguida, defina um tipo de decodificação de código de barras no construtor BarCodeReader ou no método SetBarCodeReadType, como DecodeType.Types2D.
  3. Depois disso, obtenha os resultados do reconhecimento no objeto da classe BarCodeResult usando o método ReadBarCodes().
  4. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler um código de barras usando um conjunto predefinido de simbologias em C#.

// Este exemplo de código demonstra como ler um código de barras usando um conjunto predefinido de simbologias.
// Inicializar o leitor de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// Leia o código de barras e mostre os resultados
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Leia o conjunto predefinido de tipos de código de barras da imagem em C#

Leia o conjunto predefinido de tipos de código de barras da imagem em C#

Leia vários códigos de barras da imagem em C#

Também podemos ler todos os códigos de barras disponíveis de uma imagem seguindo as etapas abaixo:

  1. Em primeiro lugar, carregue uma imagem usando a classe BarCodeReader.
  2. Em seguida, defina um tipo de decodificação de código de barras como ALLSUPPORTEDTYPES.
  3. Depois disso, obtenha os resultados do reconhecimento no objeto da classe BarCodeResult usando o método ReadBarCodes().
  4. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler vários códigos de barras de uma imagem usando C#.

// Este exemplo de código demonstra como ler vários códigos de barras de uma imagem.
// Inicializar o leitor de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// Leia todos os tipos de código de barras disponíveis na imagem de entrada
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Leia vários códigos de barras da imagem.

Leia vários códigos de barras de uma imagem.

Obtenha as coordenadas X e Y do código de barras usando C#

Podemos ler as coordenadas X e Y do código de barras detectado a partir de uma imagem seguindo as etapas abaixo:

  1. Em primeiro lugar, carregue uma imagem usando a classe BarCodeReader.
  2. Em seguida, obtenha os resultados de reconhecimento no objeto de classe BarCodeResult usando o método ReadBarCodes().
  3. Em seguida, percorra os resultados e verifique se a região não é nula.
  4. Depois disso, obtenha o array Points delimitando a região do código de barras usando o método Points.
  5. Finalmente, mostre os pontos X e Y do código de barras.

O exemplo de código a seguir mostra como obter os pontos de coordenadas X e Y de um código de barras de uma imagem usando C#.

// Este exemplo de código demonstra como ler o ponto da região X e Y dos códigos de barras de uma imagem.
// Inicializar o leitor de código de barras
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// Ler código de barras
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // Exibe as coordenadas x e y de todos os códigos de barras detectados
        Point[] point = result.Region.Points;
        Console.Out.WriteLine("Top left coordinates: X = " + point[0].X + ", Y = " + point[0].Y);
        Console.Out.WriteLine("Bottom left coordinates: X = " + point[1].X + ", Y = " + point[1].Y);
        Console.Out.WriteLine("Bottom right coordinates: X = " + point[2].X + ", Y = " + point[2].Y);
        Console.Out.WriteLine("Top right coordinates: X = " + point[3].X + ", Y = " + point[3].Y);
    }
}
Obtenha as coordenadas X e Y do código de barras

Obtenha as coordenadas X e Y de um código de barras a partir de uma imagem.

Leia o código de barras da região específica da imagem em C#

Podemos ler um código de barras de uma região específica ou de uma área de uma imagem seguindo os passos abaixo:

  1. Em primeiro lugar, leia os dados do buffer de um arquivo de imagem usando o método Bitmap.
  2. Em seguida, crie uma instância da classe BarCodeReader. Leva uma imagem, uma área de retângulo e um tipo de decodificação como argumentos.
  3. Depois disso, obtenha os resultados do reconhecimento no objeto da classe BarCodeResult usando o método ReadBarCodes().
  4. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler um código de barras de uma região específica de uma imagem usando C#.

// Este exemplo de código demonstra como ler o código de barras de uma região específica de uma imagem.
// Carregar imagem
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// Crie uma instância da classe BarCodeReader
// e especifique uma área para procurar o código de barras
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// Leia todos os códigos de barras na área fornecida
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Leia o código de barras da região específica da imagem.

Leia códigos de barras de uma região específica de uma imagem no C#.

Leia o código de barras de várias regiões da imagem em C#

Também podemos ler o código de barras de várias regiões de uma imagem seguindo as etapas abaixo:

  1. Primeiramente, carregue uma imagem usando a classe Bitmap.
  2. Em seguida, defina retângulos usando a classe Rectangle.
  3. Em seguida, crie uma instância da classe BarCodeReader.
  4. Enquanto isso, chame SetBarCodeImage() com um objeto de imagem e retângulos como argumentos.
  5. Opcionalmente, defina os tipos de leitura de código de barras usando o método SetBarCodeReadType().
  6. Depois disso, obtenha os resultados do reconhecimento no objeto da classe BarCodeResult usando o método ReadBarCodes().
  7. Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

O exemplo de código a seguir mostra como ler um código de barras de várias regiões de uma imagem usando C#.

// Este exemplo de código demonstra como ler o código de barras de uma região específica de uma imagem.
// Carregar imagem em Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// Retângulo de um código de barras 2D na imagem de origem
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// Retângulo do código de barras Code128 na imagem de origem
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// Inicializar leitor de código de barras
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// Leia todos os códigos de barras na área fornecida
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Leia o código de barras de várias regiões da imagem.

Leia códigos de barras de várias regiões de uma imagem no C#.

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como:

  • Carregar arquivo de imagem de código de barras;
  • Leia imagens como bitmap ou usando fluxo de arquivo;
  • reconhecer códigos de barras de diferentes tipos a partir de uma imagem;
  • ler as coordenadas do código de barras;
  • detectar e ler vários códigos de barras de uma única imagem;
  • detectar e ler códigos de barras de uma área específica de uma imagem.

Além de ler o código de barras de uma imagem em C#, você pode aprender mais sobre Aspose.BarCode para API .NET usando documentação. Em caso de ambiguidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Veja também