Skip to content Skip to sidebar Skip to footer

Is There A Simple Way To Turn The Byte Array From The Camera's Onpreviewframe Into A Picture In Android?

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 there wa

Solution 1:

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

BitmapmBitmap= BitmapFactory.decodeByteArray(outputStream.toByteArry(),0,outputStream.size());

I use this for every frame in the callback and it works fine. Hope this helps.

Solution 2:

The easiest way is to create a BufferedImage the following way:

Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0.data.length);

data is the byte array.

Post a Comment for "Is There A Simple Way To Turn The Byte Array From The Camera's Onpreviewframe Into A Picture In Android?"