Implementando Zoom in e Zoom out
Esta dica implementa o Zoom in e Zoom out(Image Zoomer). Ela pode ajudar desenvolvedores de jogos a acrescentar novos efeitos em seus aplicativos. Assim como pode também ser útil para aplicações J2ME, sendo feita sob encomenda para dispositivos móveis.
public Image ZoomIn(Image img) {
Image outImg = null;
int[] rgbOutput = null;
Graphics g = null;
int width = 0,height = 0;
try{
width = img.getWidth();
height = img.getHeight();
outImg = Image.createImage(height,width);
int rgbInput[]=new int[width*height];
rgbOutput = new int[width*height];
img.getRGB(rgbInput,0,width,0,0,width,height);
int i,j,k,l;
k=0;
int tempArr[][] = new int[height][width];
for(i=0;i<height;i++)
for(j=0;j<width;j++)
tempArr[i][j] = rgbInput[k++];
k=0;
for(i=0;i<height;i++) {
for(j=0;j<width;j++) {
rgbOutput[k]= tempArr[j][i];
k++;
}
}
g = outImg.getGraphics();
} catch(Exception e){}
return outImg.createRGBImage(rgbOutput,height,width,true);
}
public Image zoomImage(Image img) {
image outImg = null;
int[] rgbOutput = null;
Graphics g = null;
int width = 0,height = 0;
try {
width = img.getWidth();
height = img.getHeight();
outImg = Image.createImage(width<<1,height<<1);
int rgbInput[]=new int[width*height];
rgbOutput = new int[(width<<1)*(height<<1)];
img.getRGB(rgbInput,0,width,0,0,width,height);
int i,j,k;
k=0;
for(i=0;i<(height<<1);i+=2) {
for(j=0;j<(width<<1);j+=2) {
rgbOutput[i*(width<<1) + j] = rgbInput[k] ;
rgbOutput[(i+1)*(width<<1) + j] = rgbInput[k];
rgbOutput[i*(width<<1) + j+1] = rgbInput[k];
rgbOutput[(i+1)*(width<<1) + j+1] = rgbInput[k];
k++;
}
}
g = outImg.getGraphics();
} catch(Exception e){}
return outImg.createRGBImage(rgbOutput,width<<1,height<<1,true);
}