Eran Gross Eran Gross -4 years ago 111
Android Question

Android: Convert image object to bitmap does not work

I am trying to convert image object to bitmap, but it return null.

image = reader.acquireLatestImage();

ByteBuffer buffer = image.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.capacity()];
Bitmap myBitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.length,null);


The image itself is jpeg image, I can save it to the disk fine, the reason I want to convert to bitmap is because I want to do final rotation before saving it to the disk.
Digging in the Class BitmapFactory I see this line.

bm = nativeDecodeByteArray(data, offset, length, opts);


This line return null.
Further Digging with the debugger

private static native Bitmap nativeDecodeByteArray(byte[] data, int offset,
int length, Options opts);


This suppose to return Bitmap object but it return null.

Any tricks.. or ideas?

Thanks

Answer Source

You haven't copied bytes.You checked capacity but not copied bytes.

ByteBuffer buffer = image.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
Bitmap myBitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.length,null);
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download