Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
-Tutoriales

Gráficos con Java 2D


Componer Gráficos

La clase AlphaComposite encapsula varios estilos de composición, que determinan cómo se dibujan los objetos solapados. Un AlphaComposite también puede tener un valor alpha que especifica el grado de transparencia: alpha = 1.0 es totalmente opaco, alpha = 0.0 es totalmente transparente. AlphaComposite soporta la mayoria de los estandares de composición como se muestra en la siguiente tabla.

Source-over (SRC_OVER)
Si los pixels del objeto que está siendo renderizado (la fuente) tienen la misma posición que los pixels renderizados préviamente (el destino), los pixels de la fuente se renderizan sobre los pixels del destino.
Source-in (SRC_IN)
Si los pixels de la fuente y el destino se solapan, sólo se renderizarán los pixels que haya en el área solapada.
Source-out (SRC_OUT)
Si los pixels de la fuente y el destino se solapan, sólo se renderizarán los pixels que haya fuera del área solapada. Los pixels que haya en el área solapada se borrarán.
Destination-over (DST_OVER)
Si los pixels de la fuente y del destino se solapan, sólo se renderizarán los pixels de la fuente que haya fuera del área solapada. Los pixels que haya en el área solapada no se cambian.
Destination-in (DST_IN)
Si los pixels de la fuente y del destino se solapan, el alpha de la fuente se aplica a los pixels del área solapada del destino. Si el alpha = 1.0, los pixels del área solapada no cambian; si alpha es 0.0 los pixels del área solapada se borrarán.
Destination-out (DST_OUT)
Si los pixels de la fuente y del destino se solapan, se aplica el alpha de la fuente a los pixels del área solapada del destino. Si el alpha = 1.0, los pixels del área solapada no cambian; si alpha es 0.0 los pixels del área solapada se borrarán.
Clear (CLEAR)
Si los pixels de la fuente y del destino se solapan, los pixels del área solapada se borrarán.

Para cambiar el estilo de composición usado por Graphics2D, creamos un objeto AlphaComposite y lo pasamos al método setComposite.

. Ejemplo: Composite

Este programa ilustra los efectos de varias combinaciones de estilos de composición y valores de alpha.

Pulsa sobre la imagen para ejecutar el  applet.

Esta es una imagen del GUI del applet. Para ajecutar el applet, pulsa sobre ella. El applet aparecerá en una nueva ventana del navegador.

Composite.java contiene el código completo de este applet.

Se ha construido un nuevo objeto AlphaComposite ac llamando a AlphaComposite. getInstance y especificando las reglas de composición deseadas.

AlphaComposite ac =
               AlphaComposite.getInstance(AlphaComposite.SRC);

Cuando se selecciona una regla de composición o un valor alpha, se llama de nuevo a AlphaComposite.getInstance, y el nuevo AlphaComposite se asigna a ac. El alpha seleccionado se aplica al valor alpha de cada pixel y se le pasa un segundo parámetro a AlphaComposite.getInstance.

ac = AlphaComposite.getInstance(getRule(rule), alpha);

El atributo composite se modifica pasando el objeto AlphaComposite a Graphics 2D setComposite. Los objetos son renderizados dentro de un BufferedImage y más tarde se copian en la pantalla, por eso el atributo composite se configura con el contexto Graphics2D para el BufferedImage.

BufferedImage buffImg = new BufferedImage(w, h,
                            BufferedImage.TYPE_INT_ARGB);
Graphics2D gbi = buffImg.createGraphics();
...
gbi.setComposite(ac);
 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network