有一些 ImageView
对象。我想将该对象的位/原始数据作为 InputStream 读取。如何做到这一点?
最佳答案
首先获取 ImageView
的背景图片作为 Drawable
的对象:
iv.getBackground();
然后将Drawable
图像转换成Bitmap
使用
BitmapDrawable bitDw = ((BitmapDrawable) d);
Bitmap bitmap = bitDw.getBitmap();
现在使用ByteArrayOutputStream
将Bitmap
转化为Stream
并得到bytearray[]
;然后
将 bytearray
转换为 ByteArrayInputStream
。
您可以使用以下代码从 ImageView
获取 InputStream
。
完整源代码
ImageView iv = (ImageView) findViewById(R.id.splashImageView);
Drawable d = iv.getBackground();
BitmapDrawable bitDw = ((BitmapDrawable) d);
Bitmap bitmap = bitDw.getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();
System.out.println("........length......" + imageInByte);
ByteArrayInputStream bis = new ByteArrayInputStream(imageInByte);
谢谢 迪帕克
关于android - 如何将可绘制位读取为 InputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6341770/