Ler código de barras da imagem usando Java

Os códigos de barras desempenham um papel vital no rastreamento preciso do estoque e na entrega de produtos desde a fabricação até o ponto de venda. Em certos casos, podemos precisar ler códigos de barras de imagens programaticamente. Podemos detectar, reconhecer e ler facilmente vários tipos de códigos de barras e códigos QR em aplicativos Java. Ajuda a desenvolver aplicativos de leitor ou scanner de código de barras. Neste artigo, aprenderemos a ler um código de barras de uma imagem usando Java.

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

O que é código de barras

Um código de barras é um código legível por máquina que representa dados codificados na forma de números e um padrão de linhas paralelas. A imagem do código de barras mostra uma série de barras paralelas em preto e branco variando as larguras, espaçamento e tamanhos. Leitores ou scanners de código de barras escaneiam as imagens do código de barras e decodificam as informações.

API Java para ler código de barras da imagem

Para ler os códigos de barras das imagens dentro dos aplicativos Java, usaremos o Aspose.BarCode for Java. É uma API rica em recursos que permite gerar, digitalizar e ler uma ampla variedade de simbologias de código de barras. A classe BarCodeReader da API permite a leitura dos códigos de barras. O método readBarCodes() desta classe retorna um array de barcodes reconhecidos. A API permite a leitura de códigos de barras do DecodeType especificado. 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.

Faça o download 8 do JAR da API ou adicione a seguinte configuração pom.xml em um aplicativo Java baseado em Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-barcode</artifactId>
    <version>22.5</version>
</dependency>

Ler código de barras de uma imagem em Java

Podemos ler códigos de barras de uma imagem seguindo as etapas abaixo:

  • Primeiramente, carregue uma imagem usando a classe BarCodeReader.
  • Obtenha resultados de reconhecimento no objeto da classe BarCodeResult usando o método readBarCodes().
  • Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

A amostra de código a seguir mostra como ler um código de barras de uma imagem usando Java.

// Este exemplo de código demonstra como ler o código de barras de uma imagem.
// O caminho para o diretório de imagens
String dataDir = "C:\\Files\\BarCode\\";

// Inicialize o leitor de código de barras
BarCodeReader reader = new BarCodeReader(dataDir + "CodeText.jpg");

// Leia o código de barras e mostre os resultados
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Ler código de barras de uma imagem.

Leia o código de barras de uma imagem em Java.

Reconhecer código de barras de tipo específico em Java

Podemos ler um código de barras de um tipo específico de uma imagem seguindo as etapas abaixo:

  • Em primeiro lugar, leia os dados do buffer de um arquivo de imagem usando o método ImageIO.read().
  • Em seguida, crie uma instância da classe BarCodeReader com uma imagem em buffer e um tipo de decodificação.
  • Em seguida, defina um tipo de decodificação de código de barras para ler o código de barras de um tipo específico, como CODE39STANDARD.
  • Depois disso, obtenha resultados de reconhecimento no objeto da classe BarCodeResult usando o método readBarCodes().
  • Por fim, percorra os resultados e mostre o tipo e o texto do código de barras.

A amostra de código a seguir mostra como ler um código de barras de um tipo específico de uma imagem usando Java.

// Este exemplo de código demonstra como ler o código de barras de um tipo de decodificação específico de uma imagem.
// O caminho para o diretório de imagens
String dataDir = "C:\\Files\\BarCode\\";

// Obter imagem buffada
BufferedImage img = ImageIO.read(new File(dataDir + "CODE_39_STANDARD.jpg"));

// Inicialize o leitor de código de barras
BarCodeReader reader = new BarCodeReader(img, DecodeType.CODE_39_STANDARD);

// Leia o código de barras do tipo Code39Extended
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Reconhecer código de barras de tipo específico.

Reconhecer o código de barras de um tipo específico em Java.

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

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

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

A amostra de código a seguir mostra como ler vários códigos de barras de uma imagem usando Java.

// Este exemplo de código demonstra como ler vários códigos de barras de código de barras de uma imagem.
// O caminho para o diretório de imagens
String dataDir = "C:\\Files\\BarCode\\";

// Inicialize o leitor de código de barras
BarCodeReader reader = new BarCodeReader(dataDir + "MultipleBarcodes.png", DecodeType.ALL_SUPPORTED_TYPES);

// Leia todos os tipos de código de barras disponíveis na imagem de entrada
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
  System.out.println("-------------------------");
}
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 Java

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

  • Primeiramente, carregue uma imagem usando a classe BarCodeReader.
  • Em seguida, obtenha resultados de reconhecimento no objeto da classe BarCodeResult usando o método readBarCodes().
  • Em seguida, percorra os resultados e verifique se o getRegion() não é nulo.
  • Depois disso, obtenha o array Points que delimita a região do código de barras usando getPoints().
  • Por fim, 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 Java.

// Este exemplo de código demonstra como ler o ponto da região X e Y dos códigos de barras de uma imagem.
// O caminho para o diretório de imagens
String dataDir = "C:\\Files\\BarCode\\";

// Inicialize o leitor de código de barras
BarCodeReader reader = new BarCodeReader(dataDir + "Code39Std.png", DecodeType.ALL_SUPPORTED_TYPES);

// Ler código de barras
for (BarCodeResult result : reader.readBarCodes()) {
  if (result.getRegion() != null) {
    // Exibe as coordenadas x e y de todos os códigos de barras detectados
    Point[] point = result.getRegion().getPoints();
    System.out.println("Top left coordinates: X = " + point[0].x + ", Y = " + point[0].y);
    System.out.println("Bottom left coordinates: X = " + point[1].x + ", Y = " + point[1].y);
    System.out.println("Bottom right coordinates: X = " + point[2].x + ", Y = " + point[2].y);
    System.out.println("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 de uma imagem.

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

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

  • Em primeiro lugar, leia os dados do buffer de um arquivo de imagem usando o método ImageIO.read().
  • Em seguida, crie uma instância da classe BarCodeReader. Ele recebe uma imagem em buffer, uma área retangular e um tipo de decodificação como argumentos.
  • Depois disso, obtenha resultados de reconhecimento no objeto da classe BarCodeResult usando o método readBarCodes().
  • 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 Java.

// Este exemplo de código demonstra como ler o código de barras de uma região específica de uma imagem.
// O caminho para o diretório de imagens
String dataDir = "C:\\Files\\BarCode\\";

// Obter imagem em buffer
java.awt.image.BufferedImage img = javax.imageio.ImageIO.read(new java.io.File(dataDir + "specificRegion.png"));

// 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, 700, 100), DecodeType.ALL_SUPPORTED_TYPES);

// Leia todos os códigos de barras na área fornecida
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
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 em Java.

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 imagem de código de barras programaticamente;
  • reconhecer códigos de barras de diferentes tipos de uma imagem;
  • ler coordenadas de código de barras em Java;
  • 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 disso, você pode aprender mais sobre Aspose.BarCode para API Java usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também