Sher Sk
Sher Sk

Reputation: 57

Convert array of RGB values into image in Android

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

Answers (1)

Blackbelt
Blackbelt

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

Related Questions