lunes, 7 de abril de 2008

java2d: Mostrando una imagen

Java 2D provee algunas clases muy utiles para cargar imagenes en formato BMP, JPG, GIF y PNG sin hacer esfuerzos. En el siguiente ejemplo muestro como hacerlo:

InputStream is = this.getClass().getResourceAsStream("imagen.png");

try {
BufferedImage img = ImageIO.read(is);

} catch (IOException ioe) {
System.out.println("Unable to load image.");
}


La imagen decodificada por ImageIO y almacenada en una instancia de BufferedImage. Luego, para mostrar en pantalla, es necesario proveer una implementacion particular del metodo paint de algun componente, como el JPanel de Swing. En el siguiente ejemplo muestro como hacerlo:

public class Image2D extends JPanel {

private BufferedImage img;
...

public void paint(Graphics g) {

if (null == this.img) return;

Graphics2D g2 = (Graphics2D) g;
g2.drawImage(this.img, null, 0, 0);
}


El segundo parametro pasado al metodo drawImage es nulo ya que no es de interes producir ninguna modificacion sobre la imagen cargada, solo mostrarla como es.

No hay comentarios.: