Android: преобразование битмапа во входной поток

Как вы преобразуете Bitmap в InputStream?

Я хотел бы использовать этот InputStream как вход в функцию ETC1Util.loadTexture().

Ответ 1

Это может работать

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos); 
byte[] bitmapdata = bos.toByteArray();
ByteArrayInputStream bs = new ByteArrayInputStream(bitmapdata);

Ответ 2

Это мой способ:

// 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);