java 2d – cc60h

Post on 05-Jan-2016

60 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

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

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

JAVA 2D

Características: Manejo de Gráficos

•Antialised rendering

JAVA 2D

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

•Estilos de Relleno arbitrarios

JAVA 2D

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

•Transparencias y Sobreposiciones

JAVA 2D

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

•Distintas Formas de Trazos

JAVA 2D

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

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

JAVA 2D

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

•Bezier path

JAVA 2D

Características: Manejo de Texto

•Soporte extendido para tipografías

JAVA 2D

Características: Manejo de Texto (Cont.)

•Soporte Extendido para despliegue de tipografías

JAVA 2D

Características: Manejo de Imágenes

•In-Despliegue de Imágenes en Memoria

JAVA 2D

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

•Operaciones avanzadas sobre imágenes

JAVA 2D

Características: Dispositivos

•Soporte Transparente para dispositivos gráficos

JAVA 2D

Características: Manejo de color

•Soporte estándar ICC

•espacios de color arbitrarios

JAVA 2D

Características: Manejo de color (Cont.)

•Conversión de colores

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

JAVA 2D

Breve Descripción de la API (Cont).

Java.awt

Java awt.image

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));

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));

}

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);

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);

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);

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);

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);

JAVA 2D

FIN

top related