Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda en J2ME

Estas en el tema de Ayuda en J2ME en el foro de Java en Foros del Web. Hola, He leido en un post una duda similar a la mia, pero, no obstante no me sirve de ayuda. Esto haciendo un proyecto en ...
  #1 (permalink)  
Antiguo 03/11/2008, 08:56
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Sonrisa Ayuda en J2ME

Hola,

He leido en un post una duda similar a la mia, pero, no obstante no me sirve de ayuda.
Esto haciendo un proyecto en el Netbeans con j2me, quiero ajustar fotos y videos a la pantalla del telefono movil, ya que, la mayoria de ellas o son mas grandes o mas pequeñas que mi pantalla, ¿como puedo ajustarlas al tamaño de la pantalla?. Realmente necesito vuestra ayuda.

Gracias de antemano.
  #2 (permalink)  
Antiguo 04/11/2008, 15:25
 
Fecha de Ingreso: septiembre-2008
Ubicación: Córdoba
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda en J2ME

Con un editor de imagenes como photoshop o gimp, redimensionas la imagen al tamaño que necesites!!

Saludos
  #3 (permalink)  
Antiguo 04/11/2008, 20:56
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años
Puntos: 15
Respuesta: Ayuda en J2ME

Jaja que buena respuesta PachuG.

Mira vanessa te pongo una funcion para redimensionar una imagen, tu le tienes que pasar como parametros, la imagen a redimensionar y el ancho y alto con la que quieras que se cree la nueva imagen:

Código PHP:
public Image redimensionarImagen(Image imagenOriginalint nuevoAnchoint nuevoAlto) {
  
//Inicializaciones
  
int originalAnchoimagenOriginal.getWidth();
  
int originalAltoimagenOriginal.getHeight();
  
Image imagenFinal Image.createImage(nuevoAnchonuevoAlto);
  
Graphics g imagenFinal.getGraphics();
  
//Bucles que tratan el reescalado
  
for(int y=0nuevoAltoy++){
    for(
int x=0nuevoAnchox++) {
        
g.setClip(xy11);
        
int xAux originalAnchonuevoAncho;
        
int yAux originalAltonuevoAlto;
        
g.drawImage(imagenOriginalx-xAuxy-yAuxGraphics.LEFT Graphics.TOP);
     }
  }
  return 
Image.createImage(imagenFinal);

En tu midlet tendrias que obtener el ancho y alto de la pantalla en que se esta ejecutando y pasarle eso como parametros a esta funcion, si quieres que se vea en toda la pantalla no te olvides de hacer el FullscreenMode. Saludos.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #4 (permalink)  
Antiguo 05/11/2008, 05:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda en J2ME

Muchisimas gracias por el metodo, funciona a la perfección.
Gracias de nuevo
  #5 (permalink)  
Antiguo 17/03/2009, 02:44
Avatar de eggman  
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Ayuda en J2ME

La función reescala las imagenes perfectamente, pero consume una barbaridad de memoria y hace que se 'bloquee' el móvil.

Alguna otra función o idea para depurarla???
  #6 (permalink)  
Antiguo 18/03/2009, 02:22
Avatar de eggman  
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 18 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Ayuda en J2ME

Ya encontré una función que reescala con un rendimiento infinitamente mejor:

Código PHP:
/**
  * This methog resizes an image by resampling its pixels
  * @param src The image to be resized
  * @return The resized image
  */

  
private Image resizeImage(Image src) {
      
int srcWidth src.getWidth();
      
int srcHeight src.getHeight();
      
Image tmp Image.createImage(screenWidthsrcHeight);
      
Graphics g tmp.getGraphics();
      
int ratio = (srcWidth << 16) / screenWidth;
      
int pos ratio/2;

      
//Horizontal Resize        

      
for (int x 0screenWidthx++) {
          
g.setClip(x01srcHeight);
          
g.drawImage(src- (pos >> 16), 0Graphics.LEFT Graphics.TOP);
          
pos += ratio;
      }

      
Image resizedImage Image.createImage(screenWidthscreenHeight);
      
resizedImage.getGraphics();
      
ratio = (srcHeight << 16) / screenHeight;
      
pos ratio/2;        

      
//Vertical resize

      
for (int y 0screenHeighty++) {
          
g.setClip(0yscreenWidth1);
          
g.drawImage(tmp0- (pos >> 16), Graphics.LEFT Graphics.TOP);
          
pos += ratio;
      }
      return 
resizedImage;

  }
//resize image 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:15.