Download Graphics

Document related concepts
no text concepts found
Transcript
Graficación
IA7200-T
Imágenes – Introducción
Imágenes
•
•
•
•
•
•
Definición
Formatos de archivos
Representación Interna
Save: Imágenes-> Archivo
Imágenes Internas
Load: Imágenes <- Archivo
Graficación
• Procesamiento de
imágenes es un
campo muy amplio
• Solo algunas ideas
en esta clase
• Ver el Java API y
experimentar con
manipulación de
imágenes
2
Imágenes – Definición
• Arreglo 2D de pixeles
• Coordenadas
rectilíneas
• Resolución
determinada por el
número de pixeles
• La calidad depende de
la compresión – bits
por pixel
Graficación
• Existen varios
formatos para
almacenar imágenes
en disco
• Diferentes esquemas
de representación en
memoria
3
Formatos de Imágenes
• GIF - Graphics Interchange Format (compresión
sin pérdidas)
• JPEG - Joint Photographic Experts Group (varios
niveles de compresión con pérdidas)
• PPM - Portable Pixmap (raw raster bitmap)
• PGM - Portable Greymap (raw raster bitmap)
• TIF - Interchange Format (soporta compresion)
• PostScript – puede incluir un bitmab
• PDF – puede incluir un bitmap comprimido
• … y muchos formatos propietarios mas
Graficación
4
Representación Interna
• Arreglos de bytes (Raw) - vg 3 bytes para RGB
para cada pixel
• Valores de pixel + Lookup tables
• Otras representaciones usan tantos bits por pixel
como se desee
• Java tiene una clase Image que oculta todo esto
dentro de un objeto (mayor nivel de abstracción)
Graficación
5
Ejemplos
• Podemos extraer una imagen de los objetos
gráficos:
– MyProg07 – extrae una imagen y la guarda en
un archivo (GIF and/or JPEG)
– MyProg08 – crea una imagen interna como un
buffer doble (acelera el redibujado)
– MyProg09 – lee una imagen de un archivo
JPEG
Graficación
6
Resumen
• Varios formats de
archivos
• Varias representaciones
de memoria
• Usar lo que mas
convenga, de acuerdo al
hardware
• Compromiso resolution,
calidad, tamaño y
modelo de aplicación
Graficación
• Java Image
• Java ImageBuffer
• Usamos argumentos
de la linea de
comandos para los
programas –
podríamos desarrollar
una GUI para elegir
archivo
7