TRATAMIENTO DE IMÁGENES en JAVA
El trabajo con imágenes se realiza mediante la clase Image y un grupo de métodos asociados que los vamos a utilizar para cargar y visualizar. Los formatos deben ser GIF o JPG. Los métodos asociados a la clase son:
CREAR OBJETO:
Image obj_img;
LOCALIZAR IMAGEN: Para indicar la ruta donde esta el documento web. Es un parámetro del método getImage.
getDocumentBase()
CARGAR IMAGEN: Este método debe ir dentro de init para cargar la imagen. Los parámetros que recibe son el lugar donde se encuentra la imagen y el nombre.
obj_img=getImage(getDocumentBase(),”nombre_imagen”);
MOSTRAR IMAGEN: Insertamos una imagen en una posición determinada del applet.
objeto_grafico.drawImage(obj_img,x,y,this);
EJEMPLO: Muestra una imagen.
import java.awt.*;
import java.applet.*;
public class imagen extends Applet{
Image img1;
public void init(){
img1=getImage(getDocumentBase(),»t2.gif»);
}
public void paint(Graphics g){
g.drawImage(img1,20,20,this);
}
}
EJEMPLO: Animación de varias imágenes en la misma posición.
import java.awt.*;
import java.applet.*;
public class move extends Applet implements Runnable {
Image tabla[]=new Image[3];
Image img_pintar;
Thread pasos;
public void init(){
setBackground(Color.white);
tabla[0]=getImage(getDocumentBase(),»t3.gif»);
tabla[1]=getImage(getDocumentBase(),»t4.gif»);
tabla[2]=getImage(getDocumentBase(),»t5.gif»);
}
public void start() {
pasos = new Thread(this);
pasos.start();
}
public void run() {
for(;;){
//se puede hacer un bucle
//para evitar estas líneas
//de código.
img_pintar = tabla[0];
repaint();
pausa(500);
img_pintar = tabla[1];
repaint();
pausa(500);
img_pintar = tabla[2];
repaint();
pausa(500);
}
}
public void paint(Graphics g){
g.drawImage(img_pintar,10,10,this);
}
void pausa(int tempo) {
try {Thread.sleep(tempo);}
catch (InterruptedException e) {}
}
}
EJEMPLO: Animación de varias imágenes desplazándose de izquierda a derecha.
import java.awt.*;
import java.applet.*;
public class move extends Applet implements Runnable {
Image tabla[]=new Image[3];
Image img_pintar;
int x_coord=0,y_coord=0,ir=0;
boolean vol=false;
Thread pasos;
public void init(){
setBackground(Color.white);
tabla[0]=getImage(getDocumentBase(),»t3.gif»);
tabla[1]=getImage(getDocumentBase(),»t4.gif»);
tabla[2]=getImage(getDocumentBase(),»t5.gif»);
}
public void start() {
pasos = new Thread(this);
pasos.start();
}
public void run() {
for(;;){
int ind=0;
for(ind=0;ind<=2;ind++){
img_pintar = tabla[ind];
repaint();
pausa(500);
}
}
}
public void paint(Graphics g){
if(ir<100 && vol==false)
ir+=10;
if(ir>=100 || vol==true)
{
ir-=10;
vol=true;
if(ir<=0)
vol=false;
}
g.drawImage(img_pintar,ir,10,this);
}
void pausa(int tempo) {
try {Thread.sleep(tempo);}
catch (InterruptedException e) {}
}
}
0 comentarios