Los códigos de barras juegan un papel vital en el seguimiento preciso del inventario y la entrega de productos desde la fabricación hasta el punto de venta. En ciertos casos, es posible que necesitemos leer códigos de barras de imágenes mediante programación. Podemos detectar, reconocer y leer fácilmente varios tipos de códigos de barras y códigos QR en aplicaciones Java. Ayuda a desarrollar aplicaciones de lectores o escáneres de códigos de barras. En este artículo, aprenderemos cómo leer un código de barras de una imagen usando Java.
En este artículo se tratarán los siguientes temas:
- ¿Qué es el código de barras?
- API de Java para leer el código de barras de la imagen
- Leer código de barras de una imagen
- Reconocer código de barras de tipo específico
- Leer varios códigos de barras de una imagen
- Obtenga las coordenadas X e Y del código de barras
- Leer código de barras de una región específica de la imagen
¿Qué es el código de barras?
Un código de barras es un código legible por máquina que representa datos codificados en forma de números y un patrón de líneas paralelas. La imagen del código de barras muestra una serie de barras paralelas en blanco y negro que varían en ancho, espaciado y tamaño. Los lectores o escáneres de códigos de barras escanean las imágenes de los códigos de barras y decodifican la información.
API de Java para leer el código de barras de la imagen
Para leer los códigos de barras de las imágenes dentro de las aplicaciones Java, usaremos Aspose.BarCode for Java. Es una API rica en funciones que le permite generar, escanear y leer una amplia gama de simbologías de códigos de barras. La clase BarCodeReader de la API permite leer los códigos de barras. El método readBarCodes() de esta clase devuelve una matriz de códigos de barras reconocidos. La API permite leer códigos de barras del DecodeType especificado. La clase BarCodeResult de la API almacena los datos de códigos de barras reconocidos, como el tipo de código de barras, el texto del código, la región y otros parámetros.
Descargue el JAR de la API o agregue la siguiente configuración pom.xml en una aplicación Java basada en 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>
Leer código de barras de una imagen en Java
Podemos leer códigos de barras de una imagen siguiendo los pasos que se detallan a continuación:
- En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
- Obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método readBarCodes().
- Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.
El siguiente ejemplo de código muestra cómo leer un código de barras de una imagen usando Java.
// Este ejemplo de código demuestra cómo leer un código de barras de una imagen.
// La ruta al directorio de la imagen.
String dataDir = "C:\\Files\\BarCode\\";
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader(dataDir + "CodeText.jpg");
// Leer código de barras y mostrar resultados
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
}
Reconocer código de barras de tipo específico en Java
Podemos leer un código de barras de un tipo específico de una imagen siguiendo los pasos que se detallan a continuación:
- En primer lugar, lea los datos del búfer de un archivo de imagen utilizando el método ImageIO.read().
- A continuación, cree una instancia de la clase BarCodeReader con una imagen almacenada en búfer y un tipo de decodificación.
- Luego, establezca un tipo de decodificación de código de barras para leer el código de barras de un tipo específico, como CODE_39_STANDARD.
- Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método readBarCodes().
- Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.
El siguiente ejemplo de código muestra cómo leer un código de barras de un tipo específico de una imagen usando Java.
// Este ejemplo de código demuestra cómo leer un código de barras de un tipo de decodificación específico de una imagen.
// La ruta al directorio de la imagen.
String dataDir = "C:\\Files\\BarCode\\";
// Obtener imagen mejorada
BufferedImage img = ImageIO.read(new File(dataDir + "CODE_39_STANDARD.jpg"));
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader(img, DecodeType.CODE_39_STANDARD);
// Leer código de barras de tipo Code39Extended
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
}
Leer múltiples códigos de barras de la imagen en Java
También podemos leer todos los códigos de barras disponibles de una imagen siguiendo los pasos que se detallan a continuación:
- En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
- A continuación, establezca un tipo de decodificación de código de barras como ALL_SUPPORTED_TYPES.
- Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método readBarCodes().
- Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.
El siguiente ejemplo de código muestra cómo leer varios códigos de barras de una imagen usando Java.
// Este ejemplo de código demuestra cómo leer un código de barras de varios códigos de barras de una imagen.
// La ruta al directorio de la imagen.
String dataDir = "C:\\Files\\BarCode\\";
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader(dataDir + "MultipleBarcodes.png", DecodeType.ALL_SUPPORTED_TYPES);
// Lea todos los tipos de código de barras disponibles en la imagen de entrada
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
System.out.println("-------------------------");
}
Obtenga las coordenadas X e Y del código de barras usando Java
Podemos leer las coordenadas X e Y del código de barras detectado de una imagen siguiendo los pasos que se detallan a continuación:
- En primer lugar, cargue una imagen utilizando la clase BarCodeReader.
- A continuación, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método readBarCodes().
- Luego, recorra los resultados y verifique si getRegion() no es nulo.
- Después de eso, obtenga la matriz de Puntos que limita la región del código de barras usando getPoints().
- Finalmente, muestre los puntos X e Y del código de barras.
El siguiente ejemplo de código muestra cómo obtener los puntos de coordenadas X e Y de un código de barras de una imagen usando Java.
// Este ejemplo de código demuestra cómo leer el punto de la región X e Y de los códigos de barras de una imagen.
// La ruta al directorio de la imagen.
String dataDir = "C:\\Files\\BarCode\\";
// Inicializar lector de código de barras
BarCodeReader reader = new BarCodeReader(dataDir + "Code39Std.png", DecodeType.ALL_SUPPORTED_TYPES);
// Leer código de barras
for (BarCodeResult result : reader.readBarCodes()) {
if (result.getRegion() != null) {
// Muestra las coordenadas x e y de todos los 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);
}
}
Leer código de barras de una región específica de la imagen en Java
Podemos leer un código de barras de una región específica o un área de una imagen siguiendo los pasos que se detallan a continuación:
- En primer lugar, lea los datos del búfer de un archivo de imagen utilizando el método ImageIO.read().
- A continuación, cree una instancia de la clase BarCodeReader. Toma una imagen almacenada en búfer, un área rectangular y un tipo de decodificación como argumentos.
- Después de eso, obtenga resultados de reconocimiento en el objeto de clase BarCodeResult utilizando el método readBarCodes().
- Finalmente, recorra los resultados y muestre el tipo y el texto del código de barras.
El siguiente ejemplo de código muestra cómo leer un código de barras de una región específica de una imagen usando Java.
// Este ejemplo de código demuestra cómo leer un código de barras de una región específica de una imagen.
// La ruta al directorio de la imagen.
String dataDir = "C:\\Files\\BarCode\\";
// Obtener Imagen Buferada
java.awt.image.BufferedImage img = javax.imageio.ImageIO.read(new java.io.File(dataDir + "specificRegion.png"));
// Crear una instancia de la clase BarCodeReader
// y especifique un área para buscar el código de barras
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 700, 100), DecodeType.ALL_SUPPORTED_TYPES);
// Lea todos los códigos de barras en el área provista
for (BarCodeResult result : reader.readBarCodes()) {
System.out.println("CodeText: " + result.getCodeText());
System.out.println("Symbology type: " + result.getCodeType());
}
Obtenga una licencia gratis
Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.
Conclusión
En este artículo, hemos aprendido a:
- Cargue la imagen del código de barras mediante programación;
- reconocer códigos de barras de diferentes tipos a partir de una imagen;
- leer coordenadas de código de barras en Java;
- detectar y leer múltiples códigos de barras de una sola imagen;
- detectar y leer códigos de barras de un área específica de una imagen.
Además, puede obtener más información sobre Aspose.BarCode for Java API utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.