Leggi il codice a barre dall'immagine usando Java

I codici a barre svolgono un ruolo fondamentale nel monitoraggio accurato dell’inventario e nella consegna dei prodotti dalla produzione al punto vendita. In alcuni casi, potrebbe essere necessario leggere i codici a barre dalle immagini in modo programmatico. Possiamo facilmente rilevare, riconoscere e leggere vari tipi di codici a barre e codici QR nelle applicazioni Java. Aiuta a sviluppare lettori di codici a barre o applicazioni scanner. In questo articolo impareremo come leggere un codice a barre da un’immagine usando Java.

In questo articolo verranno trattati i seguenti argomenti:

Cos’è il codice a barre

Un codice a barre è un codice leggibile dalla macchina che rappresenta i dati codificati sotto forma di numeri e uno schema di linee parallele. L’immagine del codice a barre mostra una serie di barre bianche e nere parallele che variano in larghezza, spaziatura e dimensioni. Lettori o scanner di codici a barre scansionano le immagini dei codici a barre e decodificano le informazioni.

API Java per leggere il codice a barre dall’immagine

Per leggere i codici a barre dalle immagini all’interno delle applicazioni Java, utilizzeremo Aspose.BarCode for Java. È un’API ricca di funzionalità che ti consente di generare, scansionare e leggere un’ampia gamma di simbole di codici a barre. La classe BarCodeReader dell’API consente la lettura dei codici a barre. Il metodo readBarCodes() di questa classe restituisce un array di barcodes riconosciuti. L’API consente di leggere i codici a barre del DecodeType specificato. La classe BarCodeResult dell’API memorizza i dati del codice a barre riconosciuto come il tipo di codice a barre, il testo del codice, la regione e altri parametri.

Si prega di scaricare il JAR dell’API o aggiungere la seguente configurazione pom.xml in un’applicazione Java basata su 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>

Leggi il codice a barre da un’immagine in Java

Possiamo leggere i codici a barre da un’immagine seguendo i passaggi indicati di seguito:

  • Innanzitutto, carica un’immagine utilizzando la classe BarCodeReader.
  • Ottieni risultati di riconoscimento nell’oggetto classe BarCodeResult utilizzando il metodo readBarCodes().
  • Infine, scorrere i risultati e mostrare il tipo e il testo del codice a barre.

L’esempio di codice seguente mostra come leggere un codice a barre da un’immagine utilizzando Java.

// Questo esempio di codice mostra come leggere il codice a barre da un'immagine.
// Il percorso della directory dell'immagine
String dataDir = "C:\\Files\\BarCode\\";

// Inizializzare il lettore di codici a barre
BarCodeReader reader = new BarCodeReader(dataDir + "CodeText.jpg");

// Leggi il codice a barre e mostra i risultati
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Leggi il codice a barre da un'immagine.

Leggi il codice a barre da un’immagine in Java.

Riconosci il codice a barre di un tipo specifico in Java

Possiamo leggere un codice a barre di un tipo specifico da un’immagine seguendo i passaggi indicati di seguito:

  • Innanzitutto, leggi i dati del buffer di un file immagine utilizzando il metodo ImageIO.read().
  • Quindi, crea un’istanza della classe BarCodeReader con un’immagine nel buffer e Tipo di decodifica.
  • Quindi, impostare un tipo di decodifica del codice a barre per leggere il codice a barre di un tipo specifico, ad esempio CODE39STANDARD.
  • Successivamente, ottieni i risultati del riconoscimento nell’oggetto classe BarCodeResult utilizzando il metodo readBarCodes().
  • Infine, scorrere i risultati e mostrare il tipo e il testo del codice a barre.

L’esempio di codice seguente mostra come leggere un codice a barre di un tipo specifico da un’immagine utilizzando Java.

// Questo esempio di codice mostra come leggere il codice a barre di un tipo di decodifica specifico da un'immagine.
// Il percorso della directory dell'immagine
String dataDir = "C:\\Files\\BarCode\\";

// Ottieni un'immagine tamponata
BufferedImage img = ImageIO.read(new File(dataDir + "CODE_39_STANDARD.jpg"));

// Inizializzare il lettore di codici a barre
BarCodeReader reader = new BarCodeReader(img, DecodeType.CODE_39_STANDARD);

// Leggi il codice a barre di tipo Code39Extended
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Riconosci il codice a barre di un tipo specifico.

Riconoscere il codice a barre di un tipo specifico in Java.

Leggi più codici a barre dall’immagine in Java

Possiamo anche leggere tutti i codici a barre disponibili da un’immagine seguendo i passaggi indicati di seguito:

  • Innanzitutto, carica un’immagine utilizzando la classe BarCodeReader.
  • Quindi, imposta un tipo di decodifica del codice a barre come ALLSUPPORTEDTYPES.
  • Successivamente, ottieni i risultati del riconoscimento nell’oggetto classe BarCodeResult utilizzando il metodo readBarCodes().
  • Infine, scorrere i risultati e mostrare il tipo e il testo del codice a barre.

L’esempio di codice seguente mostra come leggere più codici a barre da un’immagine utilizzando Java.

// Questo esempio di codice mostra come leggere più codici a barre da un'immagine.
// Il percorso della directory dell'immagine
String dataDir = "C:\\Files\\BarCode\\";

// Inizializzare il lettore di codici a barre
BarCodeReader reader = new BarCodeReader(dataDir + "MultipleBarcodes.png", DecodeType.ALL_SUPPORTED_TYPES);

// Leggi tutti i tipi di codici a barre disponibili sull'immagine di input
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
  System.out.println("-------------------------");
}
Leggi più codici a barre dall'immagine.

Leggi più codici a barre da un’immagine.

Ottieni le coordinate X e Y del codice a barre usando Java

Possiamo leggere le coordinate X e Y del codice a barre rilevato da un’immagine seguendo i passaggi indicati di seguito:

  • Innanzitutto, carica un’immagine utilizzando la classe BarCodeReader.
  • Successivamente, ottieni i risultati del riconoscimento nell’oggetto classe BarCodeResult utilizzando il metodo readBarCodes().
  • Quindi, scorrere i risultati e verificare se getRegion() non è null.
  • Successivamente, ottieni l’array Points che delimita la regione del codice a barre usando getPoints().
  • Infine, mostra i punti X e Y del codice a barre.

L’esempio di codice seguente mostra come ottenere i punti delle coordinate X e Y di un codice a barre da un’immagine utilizzando Java.

// Questo esempio di codice mostra come leggere i codici a barre dei punti della regione X e Y da un'immagine.
// Il percorso della directory dell'immagine
String dataDir = "C:\\Files\\BarCode\\";

// Inizializzare il lettore di codici a barre
BarCodeReader reader = new BarCodeReader(dataDir + "Code39Std.png", DecodeType.ALL_SUPPORTED_TYPES);

// Leggi il codice a barre
for (BarCodeResult result : reader.readBarCodes()) {
  if (result.getRegion() != null) {
    // Visualizza le coordinate xey di tutti i codici a barre rilevati
    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);
  }
}
Ottieni le coordinate X e Y del codice a barre.

Ottieni le coordinate X e Y di un codice a barre da un’immagine.

Leggi il codice a barre da una specifica regione dell’immagine in Java

Possiamo leggere un codice a barre da una regione specifica o da un’area di un’immagine seguendo i passaggi indicati di seguito:

  • Innanzitutto, leggi i dati del buffer di un file immagine utilizzando il metodo ImageIO.read().
  • Quindi, crea un’istanza della classe BarCodeReader. Prende un’immagine nel buffer, un’area rettangolare e un tipo di decodifica come argomenti.
  • Successivamente, ottieni i risultati del riconoscimento nell’oggetto classe BarCodeResult utilizzando il metodo readBarCodes().
  • Infine, scorrere i risultati e mostrare il tipo e il testo del codice a barre.

L’esempio di codice seguente mostra come leggere un codice a barre da un’area specifica di un’immagine utilizzando Java.

// Questo esempio di codice mostra come leggere il codice a barre da un'area specifica di un'immagine.
// Il percorso della directory dell'immagine
String dataDir = "C:\\Files\\BarCode\\";

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

// Crea un'istanza della classe BarCodeReader
// e specificare un'area in cui cercare il codice a barre
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 700, 100), DecodeType.ALL_SUPPORTED_TYPES);

// Leggi tutti i codici a barre nell'area fornita
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Leggi il codice a barre da una specifica regione dell'immagine.

Leggi i codici a barre da una regione specifica di un’immagine in Java.

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo abbiamo imparato a:

  • Carica l’immagine del codice a barre in modo programmatico;
  • riconoscere codici a barre di diverso tipo da un’immagine;
  • leggere le coordinate del codice a barre in Java;
  • rilevare e leggere più codici a barre da una singola immagine;
  • rilevare e leggere i codici a barre da un’area specifica di un’immagine.

Inoltre, puoi saperne di più su Aspose.BarCode per l’API Java usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche