Android: Transform a bitmap into an input stream
How do you transform a Bitmap
into an InputStream
?
I would like to use this InputStream
as input to the ETC1Util.loadTexture()
function.
Solution 1:
This might work
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
byte[] bitmapdata = bos.toByteArray();
ByteArrayInputStream bs = new ByteArrayInputStream(bitmapdata);
Solution 2:
This is my way:
// Your Bitmap.
Bitmap bitmap = XXX;
int byteSize = bitmap.getRowBytes() * bitmap.getHeight();
ByteBuffer byteBuffer = ByteBuffer.allocate(byteSize);
bitmap.copyPixelsToBuffer(byteBuffer);
// Get the byteArray.
byte[] byteArray = byteBuffer.array();
// Get the ByteArrayInputStream.
ByteArrayInputStream bs = new ByteArrayInputStream(byteArray);