java 2d – cc60h

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

Upload: makaio

Post on 05-Jan-2016

60 views

Category:

Documents


2 download

DESCRIPTION

JAVA 2D – CC60H. Víctor González T. Cristian Vásquez P. JAVA 2D. Introducción. Provee un marco flexible Es independiente del dispositivo Extiende AWT Provee mecanismos uniformes para la manipulación de los objetos. JAVA 2D. Sus objetivos:. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: JAVA 2D – CC60H

JAVA 2D – CC60H

Víctor González T.

Cristian Vásquez P.

Page 2: JAVA 2D – CC60H

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

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

JAVA 2D

Características: Manejo de Gráficos

•Antialised rendering

Page 5: JAVA 2D – CC60H

JAVA 2D

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

•Estilos de Relleno arbitrarios

Page 6: JAVA 2D – CC60H

JAVA 2D

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

•Transparencias y Sobreposiciones

Page 7: JAVA 2D – CC60H

JAVA 2D

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

•Distintas Formas de Trazos

Page 8: JAVA 2D – CC60H

JAVA 2D

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

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

Page 9: JAVA 2D – CC60H

JAVA 2D

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

•Bezier path

Page 10: JAVA 2D – CC60H

JAVA 2D

Características: Manejo de Texto

•Soporte extendido para tipografías

Page 11: JAVA 2D – CC60H

JAVA 2D

Características: Manejo de Texto (Cont.)

•Soporte Extendido para despliegue de tipografías

Page 12: JAVA 2D – CC60H

JAVA 2D

Características: Manejo de Imágenes

•In-Despliegue de Imágenes en Memoria

Page 13: JAVA 2D – CC60H

JAVA 2D

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

•Operaciones avanzadas sobre imágenes

Page 14: JAVA 2D – CC60H

JAVA 2D

Características: Dispositivos

•Soporte Transparente para dispositivos gráficos

Page 15: JAVA 2D – CC60H

JAVA 2D

Características: Manejo de color

•Soporte estándar ICC

•espacios de color arbitrarios

Page 16: JAVA 2D – CC60H

JAVA 2D

Características: Manejo de color (Cont.)

•Conversión de colores

Page 17: JAVA 2D – CC60H

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

JAVA 2D

Breve Descripción de la API (Cont).

Java.awt

Java awt.image

Page 19: JAVA 2D – CC60H

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

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

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

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

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

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

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

JAVA 2D

FIN