Convertir una imagen en una instancia de BufferedImage

4071 vistas

Muchas manipulaciones de imágenes sólo trabajan sobre java.awt.image.BufferedImage. Veamos un ejemplo de cómo convertirlas:



java
  1. BufferedImage toBufferedImage(Image image) {
  2.         /** miramos uqe la imagen no sea ya una instancia de BufferedImage */
  3.         if( image instanceof BufferedImage ) {
  4.                 /** genial, no hay que hacer nada */
  5.                 return( (BufferedImage)image );
  6.         } else {
  7.                 /** nos aseguramos que la imagen está totalmente cargada */
  8.                 image = new ImageIcon(image).getImage();
  9.                 /** creamos la nueva imagen */
  10.                 BufferedImage bufferedImage = new BufferedImage(
  11.                                                       image.getWidth(null),
  12.                                                       image.getHeight(null),
  13.                                                       BufferedImage.TYPE_INT_RGB );
  14.                 Graphics g = bufferedImage.createGraphics();
  15.                 g.drawImage(image,0,0,null);
  16.                 g.dispose();
  17.                 return( bufferedImage );
  18.         }
  19. }