I am trying to decode ARGB byte array into bitmap to display it as an
image view. I tried using BitmapFactory's decodeByteArray() and
decodeStream() but both way gives null as Bitmap.
But when I create bitmap using createBitmap () and setPixels it works
perfect. Here is the working code. data is the byte array of size
imageWidth*imageHeight*4
int[] pixels=new int[imageWidth*imageHeight];
int i=0,j=0;
while (i<imageWidth*imageHeight*4) {
pixels[j]= bytesToInt(data[i], data[i+1], data[i+2],data[i+3]);
i += 4;
j++;
}
Bitmap bitmap=Bitmap.
createBitmap( imageWidth,imageHeight,Bitmap.Config .ARGB_8888)
bmpf.setPixels(pixels, 0, imageWidth , 0, 0, imageWidth,
imageHeight);
//---------------------- definition of bytesToInt()
int bytesToInt(byte b1,byte b2,byte b3,byte b4)
{
return (((b1& 0xff)<<24)+((b2 & 0xff)<<16)+((b3&0xff)<<8)+
(b4&0xff));
}
But I need to achieve this using decodeByteArray() or decodeStream()
because for the later way I need to create integer array for
setPixels() from the byte array , which is inefficient. What i am
trying to implement is a video player , there fore it need to display
around 15 frames/images per second.
Hopes some one can help me in this. Thanks in advance
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en