6_desa_applets-capitulo 1 -01 imagenes

Upload: elkinvillas9898

Post on 05-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 6_Desa_applets-Capitulo 1 -01 Imagenes

    1/6

    Multimedia

    Un sistema Multimedia utiliza ms de un medio de comunicacin al mismo tiempo en lapresentacin de la informacin, como texto, imagen, animacin, y sonido.

    Cuando un programa, un documento o una presentacin combinan adecuadamente losmedios, se mejora notablemente la atencin, la compresin y el aprendizaje, ya que seacercar algo ms a la manera habitual en que los seres humanos nos comunicamos

    Java incluye herramientas que permiten desarrollar poderosas aplicaciones multimedia conlas que se pueden manejar grficos, imgenes, animaciones, sonidos y video.

    Imgenes

    Una imagen es un objeto grfico rectangular. Algunos autores describen una imagen comoun archivo codificado que, al abrirlo, muestra una representacin visual de algo (ya seafotografa, grfica, dibujo, etc.). Las imgenes son el componente clave del diseo Web.

    Dentro de Java las imgenes son objetos de la clase Image la cual es parte del paquetejava.awt.

    Formatos de Imgenes

    Existen dos principales formatos de imgenes que se utilizan en las aplicaciones Web:

    Formato GIF: (Graphics Interchange Format) creado por CompuServe en 1987. Esteformato de imgenes pueden manejar hasta 256 colores lo cual en algunos casos eslimitado. El archivo que contiene un imagen de este tipo termina con las extensin .gif

    Formato JPEG: (Joint Photographic Experts Group) Este formato fue creado por ungrupo de expertos fotogrficos para almacenar imgenes con una mayor fidelidad ynitidez adems de que poseen mayor compresin (ocupan menos espacio). El archivoque contiene un imagen de este tipo termina con las extensin .jpg

    Declaracin de una imagen

    Las tres operaciones comunes que se realizan cuando se est trabajando con imgenes son:crear, cargar y desplegar una imagen.

    Para utilizar imgenes en Java es necesario definir un Applet que utilice la clase Image del

    VI. Desarrollo de Applets / aplicaciones con usode base de datos, redes, Servlets y multimedia

  • 7/31/2019 6_Desa_applets-Capitulo 1 -01 Imagenes

    2/6

    paquete AWT. Es por eso necesario importar los siguientes paquetes:

    import java.awt.*;import java.applet.*;

    Antes de empezar a trabajar con imgenes lo que se debe hacer es declarar una variable tipoImage. Dicha variable ser la que se utilice en lugar del nombre del archivo para cargar ydesplegar la imagen.

    Image miImagen;

    Cargar la imagen

    Para cargar la imagen se utiliza el mtodo getImage() definido en la clase Applet de la

    siguiente manera:

    Image getImage(URL ubicacin, String nombreImagen)

    El mtodo getImage regresa un objeto de tipo Image y recibe como parmetro la ubicacindel archivo de la imagen y el nombre de la imagen.

    Para facilitar la definicin de la ubicacin de la imagen se puede utilizar el mtodogetDocumentBase() de Applet que regresa precisamente un objeto de tipo URL querepresenta la ubicacin del archivo con el Applet en Internet (o en la computadora si elapplet se carg desde ah). Por lo que si se usa getDocumentBase(), la imagen se debeencontrar junto al applet que la utiliza.

    Ejemplo

    Para asignar al objeto miImagen la imagen que se encuentra en el archivo foto.gif que seencuentra en junto con el applet se utilizara la siguiente instruccin:

    miImagen = getImage(getDocumentBase(), "foto.gif");

    Desplegar la imagen

    Una vez que se ha cargado la imagen se puede desplegar utilizando el mtodo drawImage()de la clase Graphics.

    boolean drawImage (Image obj, int x, int y, ImageObserver imgOb)

    Este mtodo recibe cuatro valores. El primero de ellos es el objeto tipo Image que se va adesplegar. El segundo y tercer valor indican la posicin (x, y) dentro de la ventana en la quese desplegar la imagen. Siendo (x, y) la coordenada en la que se ubicar la esquina superiorizquierda de la imagen. El ltimo valor corresponde al observador de la imagen el cual es unobjeto que permite monitorear la imagen mientras se carga. Este ltimo es importante sobretodo cuando se muestran imgenes grandes que tardan mucho tiempo para descargarse de

  • 7/31/2019 6_Desa_applets-Capitulo 1 -01 Imagenes

    3/6

    Internet.

    Por ejemplo:

    Para desplegar en pantalla la imagen cargada en miImagen en la posicin 0,0 de la ventanase utilizara la siguiente instruccin:

    g.drawImage(miImagen, 0, 0, this);

    Applet Ejemplo

    Tomando en cuenta todo lo anterior, el siguiente applet carga y despliega la imagen foto.gifen la esquina superior izquierda de la ventana creada por el Applet:

    import java.awt.*;import java.applet.*;

    public class DespliegaImagen extends Applet {Image miImagen;

    public void init() {miImagen = getImage(getDocumentBase(), "foto.gif");

    }public void paint(Graphics g){

    g.drawImage(miImagen, 0, 0, this);}

    }

    Cuando el applet se ejecuta, empieza por cargar la imagen ejecutando el mtodo init(). Elmtodo paint() se llama cada vez que llegue una imagen, en este caso se llama solo una vez.

    La ejecucin del applet muestra lo siguiente:

  • 7/31/2019 6_Desa_applets-Capitulo 1 -01 Imagenes

    4/6

    Escalando Imgenes

    Java provee mecanismo para escalar una imagen automticamente utilizando otra versindel mtodo drawImage() de Graphics.

    drawImage (Image obj, int x, int y, int ancho, int alto, ImageObserver imgOb)

    En esta los valores que se le pasan en la cuarta y quinta posicin especifican la anchura yaltura de la imagen. El mtodo drawImage escala la imagen para que se ajuste a la anchuray altura especificadas.

    Por ejemplo:

    Para escalar la imagen a la altura y anchura del applet se puede utilizar los mtodosgetWidth() y getHeight() quienes devuelven dichos valores.

    Tomando en cuenta lo anterior, el applet quedara de la siguiente manera:

    import java.awt.*;import java.applet.*;

    public class EscalarImagen extends Applet {Image miImagen;

    public void init() {

    miImagen = getImage(getDocumentBase(), "foto.gif");}public void paint(Graphics g){

    g.drawImage(miImagen, 0, 0, getWidth(), getHeight(), this);}

    }

    Este mostrara en la ventana la imagen escalada (observe que la imagen ocupa todo elespacio de la ventana).

  • 7/31/2019 6_Desa_applets-Capitulo 1 -01 Imagenes

    5/6

    Iconos

    Otra forma de desplegar imgenes en la ventana es utilizar la imagen como un Icono. Parahacerlo de esta manera se debe declarar una variable del tipo ImageIcon.

    ImageIcon miIcono;

    Dado que la clase ImageIcon no es abstracta, se puede crear un objeto de la clase utilizandoel new de la siguiente manera:

    miIcono = new ImageIcon ("foto.gif");

    Finalmente para desplegar el icono en la ventana se utiliza el mtodo paintIcon el cualrequiere cuatro argumentos: una referencia al objeto Componet en el que se va a mostrar laimagen, una referencia al objeto Graphics que desplegar la imagen y las coordenadas (x,y) en la que se colocar la esquina superior izquierda de la imagen.

    Ejemplo:

    miIcono.paintIcon(this, g, 0, 0);

    El siguiente applet muestra en la ventana la imagen foto.gif:

    import java.awt.*;import java.applet.*;import javax.swing.*;

    public class Icono extends JApplet{ImageIcon miIcono;

    public void init() {miIcono = new ImageIcon ("foto.gif");

  • 7/31/2019 6_Desa_applets-Capitulo 1 -01 Imagenes

    6/6

    }public void paint(Graphics g){

    miIcono.paintIcon(this, g, 0, 0);}

    }

    Al ejecutar el applet se vera lo siguiente:

    Como se puede observar, el resultado de ejecutar este applet es similar al que se utilizanteriormente. Si comparamos las dos tcnicas para cargar y mostrar imgenes, se podrver que es mucho ms sencillo utilizar ImageIcon. Cabe observar que paintIcon no permiteescalar imgenes.