int[] rgbOutput = null;
int width = 0, height = 0;
int[] rgbInput = null;
try {
width = img.getWidth();
height = img.getHeight();
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) {
if (j < 3) {
// System.out.println(i * (width << 1) + j);
// System.out.println((i + 1) * (width << 1) + j);
// System.out.println(i * (width << 1) + j + 1);
// System.out.println((i + 1) * (width << 1) + j + 1);
}
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++;
}
}
return Image.createRGBImage(rgbOutput, width << 1, height << 1,
true);
} catch (OutOfMemoryError e) {
// e.printStackTrace();
ImageAlbum.showAlert("Kích thước hình ảnh quá lớn!!!");
return img;
} finally {
rgbOutput = null;
rgbInput = null;
}
}
/***************************************************************************
* Zoom out
*/
public static Image zoomOutImage(Image img) {
int[] rgbOutput = null;
int width = 0, height = 0;
int[] rgbInput = null;
try {
width = img.getWidth();
height = img.getHeight();
// System.out.println(width >> 1);
// System.out.println(height >> 1);
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, k1;
k = 0;
k1 = 0;
// System.out.println(height);
// System.out.println(width);
for (i = 0; i < height; i++) {
for (j = 0; j < width; j += 2) {
if (i % 2 == 0) {
if (k1 > width * height - 1
|| k > (width >> 1) * (height >> 1) - 1) {
// System.out.println("k=" + k);
// System.out.println("k1=" + k1);
break;
}
rgbOutput[k] = rgbInput[k1];
k++;
k1 += 2;
// System.out.println(k);
// System.out.println(k1);
} else {
k1 += 2;
}
}
}
return Image.createRGBImage(rgbOutput, width >> 1, height >> 1,
true);
} catch (OutOfMemoryError e) {
// e.printStackTrace();
ImageAlbum.showAlert("Kích thước hình ảnh quá lớn để thực hiện");
return img;
} finally {
rgbOutput = null;
rgbInput = null;
}
}