260 likes | 356 Views
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:.
E N D
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: • 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