JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.
-
Upload
alejandro-aguilera-montoya -
Category
Documents
-
view
226 -
download
0
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/1.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/2.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/3.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/4.jpg)
JAVA 2D
Características: Manejo de Gráficos
•Antialised rendering
![Page 5: JAVA 2D – CC60H Víctor González T. Cristian Vásquez P.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/5.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/6.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/7.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/8.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/9.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/10.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/11.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/12.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/13.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/14.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/15.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/16.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/17.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/18.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/19.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/20.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/21.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/22.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/23.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/24.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/25.jpg)
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.](https://reader035.fdocumento.com/reader035/viewer/2022062315/5665b4901a28abb57c923ba7/html5/thumbnails/26.jpg)
JAVA 2D
FIN