I ask if there is a simple way because there is a google issue report saying that using decodeByteArray isn\'t possible. But that report originated in 2008 and I was hoping
The easiest way is to create a BufferedImage the following way:
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0. data.length);
data is the byte array.
I'm assuming your byte array is from the camera preview? If so you have to decode it but with 2.2 it's quite easy now.
Create a YUV image from the byte array as the data will only be in ImageFormat.NV21( int code 17)
img = new YuvImage(imgData, ImageFormat.NV21, width, height, null);
Create a rectangle the same size as the image.
Create a ByteArrayOutputStream
and pass this, the rectangle and the compression value to compressToJpeg()
.
Then you can use
Bitmap mBitmap = BitmapFactory.decodeByteArray(outputStream.toByteArry(),0,outputStream.size());
I use this for every frame in the callback and it works fine. Hope this helps.