Manipular Imágenes

La figura anterior muestra como se crean los datos de una imagen detrás de la escena. Un productor de imagen -- un objeto que implementa el interface ImageProducer -- produce una colunma de datos para un objeto Image. El productor de imagen proporciona estos datos al consumidor de imagen -- un objeto que implementa el interface ImageConsumer. A menos que se necesite manipular o crear imágenes personalizadas, no necesitarás saber como trabajan el productor y el consumidor de imágenes. El AWT utiliza automáticamente productores y consumidores de imágenes detrás de la escena.

El AWT soporta la manipulación de imágenes permitiéndo insertar filtros de imagen entre el productor y el consumidor. Un filtro de imagen es un objeto ImageFilter que se sitúa entre el productor y el consumidor, modificando los datos de la imagen antes de que los obtenga el consumidor. ImageFilter implementa el interface ImageConsumer, ya que intercepta los mensajes que el productor envía al consumidor. La siguiente figura muestra cómo se sitúa un filtro de imagen entre el productor y el consumidor de imágenes.

Cómo utilizar un Filtro de Imagen

Utilizar un filtro de imagen existente es sencillo. Sólo tienes que utilizar el siguiente código, modificando el constructor del filtro de imagen si es necesario.
Image sourceImage;
...//Inicializa sourceImage, utilizando el método getImage() de Toolkit o de Applet.
ImageFilter filter = new SomeImageFilter();
ImageProducer producer = new FilteredImageSource(sourceImage.getSource(), filter);
Image resultImage = createImage(producer);
La página siguiente explica cómo trabaja el código anterior y te dice donde puedes encontrar algunos filtros de imagen.

Cómo escribir un Filtro de Imagen

żY si no encuentras un filtro de imagen que haga lo que necesitas? Puedes escribir tu propio filtro de imagen. Esta página ofrece algunos trucos sobre cómo hacerlo, incluyen enlaces a ejemplos y una explicación de un filtro personalizado que rota imágenes.


Ozito