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
- API Java per leggere il codice a barre dall’immagine
- Leggi il codice a barre da un’immagine
- Riconosci il codice a barre di un tipo specifico
- Leggi più codici a barre da un’immagine
- Ottieni le coordinate X e Y del codice a barre
- Leggi il codice a barre da una specifica regione dell’immagine
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());
}
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());
}
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("-------------------------");
}
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);
}
}
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());
}
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.