How can I convert Java bitmap to byte array?

702    Asked by KaylaShinn in Java , Asked on Feb 5, 2021

 Bitmap bmp   = intent.getExtras().get("data");

  int size     = bmp.getRowBytes() * bmp.getHeight();

  ByteBuffer b = ByteBuffer.allocate(size);

  bmp.copyPixelsToBuffer(b);

  byte[] bytes = new byte[size];

  try {

     b.get(bytes, 0, bytes.length);

  } catch (BufferUnderflowException e) {

     // always happens

  }

  // do something with byte[]

When I look at the buffer after the call to copyPixelsToBuffer the bytes are all 0... The bitmap returned from the camera is immutable... but that shouldn't matter since it's doing a copy.

What could be wrong with this code?

Answered by Julie Baber

Your Answer

Interviews

Parent Categories