Android:将位图转换为输入流

时间:2011-10-08 17:04:44

标签: android

如何将Bitmap转换为InputStream

我想将此InputStream用作ETC1Util.loadTexture()函数的输入。

2 个答案:

答案 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);