如何将Bitmap
转换为InputStream
?
我想将此InputStream
用作ETC1Util.loadTexture()
函数的输入。
答案 0 :(得分:96)
这可能有效
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
byte[] bitmapdata = bos.toByteArray();
ByteArrayInputStream bs = new ByteArrayInputStream(bitmapdata);
答案 1 :(得分:4)
这是我的方式:
// 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);