JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

26
JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

Transcript of JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

Page 1: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D – CC60H

Víctor González T.

Cristian Vásquez P.

Page 2: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2DIntroducción

•Provee un marco flexible

•Es independiente del dispositivo

•Extiende AWT

•Provee mecanismos uniformes para la manipulación de los objetos

Page 3: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Sus objetivos:

•Permitir la construcción de aplicaciones con interfaces gráficas avanzadas

•Manejar gráficos, textos e imágenes de alta calidad independiente de su plataforma

•Conseguir una integración con las otras tecnologías de Java

Page 4: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Gráficos

•Antialised rendering

Page 5: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Gráficos (Cont.)

•Estilos de Relleno arbitrarios

Page 6: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Gráficos (Cont.)

•Transparencias y Sobreposiciones

Page 7: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Gráficos (Cont.)

•Distintas Formas de Trazos

Page 8: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Gráficos (Cont.)

•Transformaciones (traslación, rotación, escalamiento o deformaciones)

Page 9: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Gráficos (Cont.)

•Bezier path

Page 10: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Texto

•Soporte extendido para tipografías

Page 11: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Texto (Cont.)

•Soporte Extendido para despliegue de tipografías

Page 12: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Imágenes

•In-Despliegue de Imágenes en Memoria

Page 13: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de Imágenes (Cont.)

•Operaciones avanzadas sobre imágenes

Page 14: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Dispositivos

•Soporte Transparente para dispositivos gráficos

Page 15: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de color

•Soporte estándar ICC

•espacios de color arbitrarios

Page 16: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Características: Manejo de color (Cont.)

•Conversión de colores

Page 17: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Breve Descripción de la API

Java.awt.color

java.awt.font

java.awt.geom

java.awt.print

com.sun.images.codec.jpeg

java.awt.image.renderable

Page 18: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Breve Descripción de la API (Cont).

Java.awt

Java awt.image

Page 19: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Ejemplos: Manejo de Gráficos (1)

redtowhite = new GradientPaint(x,y,red,x+rectWidth, y,white);

g2.setPaint(redtowhite);

g2.fill (new Ellipse2D.Double(x, y, rectWidth, rectHeight));

Page 20: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Ejemplos: Manejo de Gráficos (2)

for (int N = 0; N < 18; N++) {

float i = (N + 2) / 2.0f; float x = (float) (5+i*(w/2/10));

float y = (float) (5+i*(h/2/10)); float ew = (w-10)-(i*w/10);

float eh = (h-10)-(i*h/10);

float alpha = (N == 0) ? 0.1f : 1.0f / (19.0f - N);

g2.setColor(new Color(0f, 0f, 0f, alpha));

g2.fill(new Ellipse2D.Float(x,y,ew,eh));

}

Page 21: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Ejemplos: Manejo de Gráficos (3)

GeneralPath filledPolygon = new GeneralPath(GeneralPath.WIND_EVEN_ODD, 4);

filledPolygon.moveTo(x,y); filledPolygon.lineTo(x+d, y+d);

filledPolygon.lineTo(x, y+d); filledPolygon.lineTo(x+d, y);

filledPolygon.closePath();

g2.setPaint(red);

g2.fill(filledPolygon);

Page 22: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Ejemplos: Manejo de Gráficos (4)

Construcción de una pera (las hojas)

leaf = new Ellipse2D.Double();

leaf1 = new Area(leaf); leaf2 = new Area(leaf);

...

leaf.setFrame(ew-16, eh-29, 15.0, 15.0); leaf1 = new Area(leaf);

leaf.setFrame(ew-14, eh-47, 30.0, 30.0); leaf2 = new Area(leaf);

leaf1.intersect(leaf2); g2.fill(leaf1);

...

leaf.setFrame(ew+1, eh-29, 15.0, 15.0); leaf1 = new Area(leaf);

leaf2.intersect(leaf1); g2.fill(leaf2);

Page 23: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Ejemplos: Manejo de Texto (1)

FontRenderContext frc = g2.getFontRenderContext();

f = new Font("serif", Font.BOLD,w/6);

t = new TextLayout("Outline", f, frc);

sw = (float) t.getBounds().getWidth(); sh = (float) t.getBounds().getHeight();

sha = t.getOutline(AffineTransform.getTranslateInstance(w/2-sw/2,h/2+sh/2) );

g2.setColor(Color.black); g2.draw(sha);

g2.setColor(Color.red); g2.fill(sha);

Page 24: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Ejemplos: Manejo de Imágenes (1)

public static final float[] SHARPEN3x3 = { 0.f, -1.f, 0.f,

-1.f, 5.0f, -1.f,

0.f, -1.f, 0.f};

BufferedImage dest = new bufferedImage(iw,ih,BufferedImage.TYPE_INT_RGB);

Kernel kernel = new Kernel(3,3,SHARPEN3x3);

ConvolveOp cop = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);

cop.filter(src,dest);

Page 25: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

Ejemplos: Manejo de Imágenes (2)

byte reverse[] = new byte[256];

for (int j=0; j<200; j++){

reverse[j]=(byte)(256-j);

}

ByteLookupTable blut=new ByteLookupTable(0, reverse);

LookupOp lop = new LookupOp(blut, null);

lop.filter(src,dest);

Page 26: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.

JAVA 2D

FIN