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