Android:将位图转换为inputstream

你如何将一个Bitmap转换成一个InputStream

我想用这个InputStream作为ETC1Util.loadTexture()函数的input。

这可能工作

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

这是我的方式:

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