PDF de programación - Java a tope: Java 2D

Imágen de pdf Java a tope: Java 2D

Java a tope: Java 2Dgráfica de visualizaciones

Publicado el 14 de Enero del 2017
2.335 visualizaciones desde el 14 de Enero del 2017
3,2 MB
144 paginas
Creado hace 17a (09/04/2007)
Java a Tope:

Cómo tratar con Java

figuras, imágenes y texto en dos dimensiones

Sergio Gálvez Rojas
Manuel Alcaide García
Miguel Ángel Mora Mata

JAVA A TOPE: JAVA2D (CÓMO TRATAR CON JAVA FIGURAS, IMÁGENES Y
TEXTO EN DOS DIMENSIONES). EDICIÓN ELECTRÓNICA

AUTORES:

ILUSTRACIÓN
DE PORTADA:

SERGIO GÁLVEZ ROJAS
MANUEL ALCAIDE GARCIA
MIGUEL ÁNGEL MORA MATA

HTTP://WWW.INTERPEQUES2.COM/

Sun, el logotipo de Sun, Sun Microsystems y Java son marcas o marcas registradas de Sun
Microsystems Inc. en los EE.UU. y otros países. El personaje de «Duke» es una marca de Sun
Microsystems Inc.

Depósito Legal: MA-0722-2007
ISBN: 978-84-690-5677-6

Java a tope:

Java2D

Cómo tratar con Java figuras, imágenes y texto en dos

dimensiones

Sergio Gálvez Rojas

Doctor Ingeniero en Informática

Manuel Alcaide García

Ingeniero Técnico en Informática de Sistemas

Miguel Ángel Mora Mata

Ingeniero Técnico Superior en Informática

Dpto. de Lenguajes y Ciencias de la Computación

E.T.S. de Ingeniería Informática

Universidad de Málaga

Java a tope: Java2D

Índice

Prólogo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Capítulo 1:

1.2.1
1.2.2
1.2.3
1.2.4
1.2.5 Métodos de composición.

Introducción. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Descripción del capítulo.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Renderizado con Graphics2D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Atributos de pincel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Atributos de relleno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
La porción a dibujar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Transformaciones.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 ¿Qué puede dibujarse?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Figuras geométricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1.1 Conceptos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Fuentes y diseño de texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Tratamiento de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Tratamiento del color.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3.2
1.3.3

1.3.1

2.1.1

2.5.1

2.3.1
2.3.2

2.1 Introducción.

Capítulo 2: Renderizado de imágenes con Graphics2D. . . . . . 15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Ejemplo preliminar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 El contexto.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 El sistema de coordenadas de Java2D.. . . . . . . . . . . . . . . . . . . . . . . . . . 18
Coordenadas de usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Coordenadas de dispositivo. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Un paso adelante: el canal alfa.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5 Modificación del contexto de Graphics2D. . . . . . . . . . . . . . . . . . . . . . . 22
Preferencias, pinceles y colores.. . . . . . . . . . . . . . . . . . . . . . . . 22
2.5.1.1 Preferencias.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5.1.2 Especificar el estilo de línea.. . . . . . . . . . . . . . . . . . . . . . . 24
2.5.1.3 Especificación de los atributos de relleno.. . . . . . . . . . . . . 28
Gradiente de color .. . . . . . . . . . . . . . . . . . . . . . . 28
2.5.1.3.1
2.5.1.3.2
Relleno con texturas.. . . . . . . . . . . . . . . . . . . . . . 29
Establecimiento del clipping path.. . . . . . . . . . . . . . . . . . . . . . 31
Transformaciones de objetos.. . . . . . . . . . . . . . . . . . . . . . . . . . 32
Composición de objetos gráficos.. . . . . . . . . . . . . . . . . . . . . . . 34

2.5.2
2.5.3
2.5.4

i

Índice

Capítulo 3:

3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.2.6
3.2.7
3.2.8
3.2.9

Figuras geométricas en Java2D. . . . . . . . . . . . . . . 39
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1 Introducción.
3.2 Figuras básicas.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Line2D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Rectangle2D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
RoundRectangle2D.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Ellipse2D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Arc2D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
QuadCurve2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
CubicCurve2D .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Point2D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Resumen de clases relacionadas con figuras geométricas. . . . . 47
3.3 Un primer ejemplo compuesto: bañera. . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4 La interfaz Shape.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Otra manera de construir figuras: GeneralPath.. . . . . . . . . . . . 50
Figuras geométricas a la medida: la bañera.
. . . . . . . . . . . . . . 51
Áreas Geométricas Constructivas (CAG). . . . . . . . . . . . . . . . . 55
3.4.3.1 Sherezade en el crepúsculo. . . . . . . . . . . . . . . . . . . . . . . . 57
3.5 JOGL (Java/OpenGL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.4.1
3.4.2
3.4.3

4.2.1

Capítulo 4: Tratamiento de texto con Java2D. . . . . . . . . . . . . 61
4.1 Introducción.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2 ¿Cómo encontrar las fuentes?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Crear y derivar fuentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3 Dibujar texto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Dibujar una única línea de texto. . . . . . . . . . . . . . . . . . . . . . . . 63
Dibujar un párrafo completo.. . . . . . . . . . . . . . . . . . . . . . . . . . 66
Cómo dibujar texto sobre una imagen.. . . . . . . . . . . . . . . . . . . 70
Letra cursiva invertida mediante transformaciones. . . . . . . . . . 73
Rellenar un clipping path con distintos objetos.. . . . . . . . . . . . 74
4.4 Manejo de la clase TextAttribute. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

4.3.1
4.3.2
4.3.3
4.3.4
4.3.5

Capítulo 5:

Imágenes con Java2D.. . . . . . . . . . . . . . . . . . . . . . 81
5.1 Introducción.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2 Obtención de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Cargar una imagen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Cargar una imagen como BufferedImage. . . . . . . . . . . . . . . . . 83
Crear imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3 Mostrar una imagen.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.4 La clase MediaTracker.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.2.1
5.2.2
5.2.3

ii

Java a tope: Java2D

5.6.1

5.5.1

5.5 Dibujar sobre imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Double Buffering (dibujo en memoria). . . . . . . . . . . . . . . . . . . 91
5.6 Procesamiento de imágenes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Operaciones predefinidas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.6.1.1 ConvolveOp.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.6.1.2 AffineTransformOp.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.6.1.3 LookupOp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.6.1.4 RescaleOp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.6.1.5 ColorConvertOp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Dentro de BufferedImage. . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

5.6.2

6.2.1

6.1 Introducción.
6.2 Cómo crear un color.

Capítulo 6: El color en Java2D. . . . . . . . . . . . . . . . . . . . . . . . 117
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Un ejemplo con colores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.3 Espacios de Colores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
El espacio de colores CIEXYZ. . . . . . . . . . . . . . . . . . . . . . . . 121
El espacio de colores sRGB . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.4 La clase ColorSpace.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.5 Perfiles.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.6 La verdad sobre el color. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

6.3.1
6.3.2

iii

Índice

iv

Java a tope: Java2D

Prólogo

El objetivo básico del texto que el lector tiene entre sus manos es

realizar un estudio completo y didáctico sobre la tecnología Java2D
que sirva como documentación para actuales y futuros programadores
en esta tecnología. Se pretende ser lo más claro y conciso posible pero sin dejar de
estudiar, aunque
  • Links de descarga
http://lwp-l.com/pdf336

Comentarios de: Java a tope: Java 2D (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad