据说有一些 ImageView 对象。我想将此对象的位/原始数据读取为 InputStream。怎么做?

最佳答案

首先获取imageview的背景图片作为Drawable的对象

iv.getBackground();

然后使用将 Drwable 图像转换为位图
BitmapDrawable bitDw = ((BitmapDrawable) d);
        Bitmap bitmap = bitDw.getBitmap();

现在使用 ByteArrayOutputStream 将位图获取到流中并获取 bytearray[]
将 bytearray 转换为 ByteArrayInputStream

您可以使用以下代码从 imageview 获取输入流

完整的源代码
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);

谢谢
迪帕克

10-07 19:15
查看更多