Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/03/2009, 02:22
Avatar de eggman
eggman
 
Fecha de Ingreso: octubre-2005
Mensajes: 17
Antigüedad: 21 años
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(screenWidth, srcHeight);
      
Graphics g = tmp.getGraphics();
      
int ratio = (srcWidth << 16) / screenWidth;
      
int pos = ratio/2;

      
//Horizontal Resize        

      
for (int x = 0; x < screenWidth; x++) {
          
g.setClip(x, 0, 1, srcHeight);
          
g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP);
          
pos += ratio;
      }

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

      
//Vertical resize

      
for (int y = 0; y < screenHeight; y++) {
          
g.setClip(0, y, screenWidth, 1);
          
g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP);
          
pos += ratio;
      }
      return 
resizedImage;

  }
//resize image