miércoles, 7 de marzo de 2018

Como leer una imagen en Java

Leer recursos es una tarea muy usada por cualquier aplicación Java, cuando usas un IDE como Netbeans, le delegas mucho de esta tarea, siempre llega el momento en el que necesitas escribir las lineas de código tu mismo.

En esta entrada me enfocaré unicamente en mostrar como leer una imagen y mostrarla en un JLabel, el cual estará en un JFrame.

Si deseas profundizar más te invito a leer la entrada Localizar y Leer recursos en Java

IDE
Netbeans 8.2

Precondiciones

La imagen a leer tiene que estar en algún lugar dentro de los fuentes de tu proyecto, por ejemplo en algún package diferente al de tu clase. En las siguientes imágenes te muestro la estructura de mi proyecto en NetBeans.




Pasos para leer y mostrar la imagen

Vamos a leer y mostrar la imagen en 5 pasos, lo único que tienes que cambiar es el path, según donde tengas la imagen.

//1. Obtener el objeto Class NombreClase.class
Class clazz = JFrameImageDemo.class;

//2. Crear el path "/com/unadm/swing/images/book-icon.png"
//   Ruta absoluta tomando como contexto el classpath de nuestro proyecto
//   Nuestra imagen se encuentra dentro del directorio build/classes el cual se
//   agrega al classpath
String path = "/com/unadm/swing/images/";
path = path + "book-icon.png";

//3. Obtener la url de nuestra imagen
URL url = clazz.getResource(path);

//4. Leer la imagen con la clase ImageIO
try {
BufferedImage image = ImageIO.read(url);

//5. Setear la imagen al JLabel
emptyLabel.setIcon(new ImageIcon(image));
} catch (IOException ioexception) {
System.err.println(ioexception);
}


Codigo Fuente de la Clase

A continuación el código fuente de la clase, antes de ejecutar la clase es recomendable que realices un "clean and build" a tu projecto, muchas veces NetBeans necesita compilar todo el proyecto para incluir tu imagen junto a las clases compiladas.

No hay comentarios:

Publicar un comentario