Reputation: 57
I have converted a JPEG image to an array of RGB color values through BitmapFactory.decodeStream
and this code:
picw = selectedImage.getWidth();
pich = selectedImage.getHeight();
int[] pix = new int[picw * pich];
selectedImage.getPixels(pix, 0, picw, 0, 0, picw, pich);
int R, G, B;
for (int y = 0; y < pich; y++) {
for (int x = 0; x < picw; x++) {
int index = y * picw + x;
R = (pix[index] >> 16) & 0xff;
G = (pix[index] >> 8) & 0xff;
B = pix[index] & 0xff;
pix[index] = (R << 16) | (G << 8) | B;
}
}
Now, how do I convert this array back into an image?
Upvotes: 3
Views: 4188
Reputation: 157437
you can use the static method Bitmap.createBitmap. E.g.
Bitmap bmp = Bitmap.createBitmap(pix, picw, pich, Bitmap.Config.ARGB_8888)
Upvotes: 6