您的位置:首页 > 移动开发 > Android开发

实习入职第十二天:Android中Bitmap,byte[],Drawable,InputStream相互转化工具类

2016-06-01 22:48 399 查看


1、将byte[]转换成InputStream  

    public InputStream Byte2InputStream(byte[] b) {  

        ByteArrayInputStream bais = new ByteArrayInputStream(b);  

        return bais;  

    }  

  

2、 将InputStream转换成byte[]  

两种方式:

一、

 public
static final byte[] InputStream2Bytes(InputStream inStream) {
    ByteArrayOutputStream
swapStream = new ByteArrayOutputStream();
    byte[]
buff = new byte[100];
    int
rc = 0;
    try
{
  while ((rc
= inStream.read(buff, 0, 100)) > 0) {
  swapStream.write(buff,
0, rc);
  }
  } catch (IOException
e) {
  // TODO Auto-generated
catch block
  e.printStackTrace();
  }
    byte[]
in2b = swapStream.toByteArray();
    return
in2b;
    }

二、

    public byte[] InputStream2Bytes(InputStream is) {  

        String str = "";  

        byte[] readByte = new byte[1024];  

        int readCount = -1;  

        try {  

            while ((readCount = is.read(readByte, 0, 1024)) != -1) {  

                str += new String(readByte).trim();  

            }  

            return str.getBytes();  

        } catch (Exception e) {  

            e.printStackTrace();  

        }  

        return null;  

    }  

  

3、 将Bitmap转换成InputStream  

    public InputStream Bitmap2InputStream(Bitmap bm, int quality) {  

        ByteArrayOutputStream baos = new ByteArrayOutputStream();  

        bm.compress(Bitmap.CompressFormat.PNG, quality, baos);  

        InputStream is = new ByteArrayInputStream(baos.toByteArray());  

        return is;  

    }  

  

4、 将InputStream转换成Bitmap  

    public Bitmap InputStream2Bitmap(InputStream is) {  

        return BitmapFactory.decodeStream(is);  

    }  

  

5、 Drawable转换成InputStream  

    public InputStream Drawable2InputStream(Drawable d) {  

        Bitmap bitmap = this.drawable2Bitmap(d);  

        return this.Bitmap2InputStream(bitmap);  

    }  

  

6、 InputStream转换成Drawable  

    public Drawable InputStream2Drawable(InputStream is) {  

        Bitmap bitmap = this.InputStream2Bitmap(is);  

        return this.bitmap2Drawable(bitmap);  

    }  

  

7、 Drawable转换成byte[]  

    public byte[] Drawable2Bytes(Drawable d) {  

        Bitmap bitmap = this.drawable2Bitmap(d);  

        return this.Bitmap2Bytes(bitmap);  

    }  

8、 byte[]转换成Drawable  

    public Drawable Bytes2Drawable(byte[] b) {  

        Bitmap bitmap = this.Bytes2Bitmap(b);  

        return this.bitmap2Drawable(bitmap);  

    }  

  

8、 Bitmap转换成byte[]  

    public byte[] Bitmap2Bytes(Bitmap bm) {  

        ByteArrayOutputStream baos = new ByteArrayOutputStream();  

        bm.compress(Bitmap.CompressFormat.PNG, 100, baos);  

        return baos.toByteArray();  

    }  

  

9、 byte[]转换成Bitmap  

    public Bitmap Bytes2Bitmap(byte[] b) {  

        if (b.length != 0) {  

            return BitmapFactory.decodeByteArray(b, 0, b.length);  

        }  

        return null;  

    }  

  

10、Drawable转换成Bitmap  

    public Bitmap drawable2Bitmap(Drawable drawable) {  

        Bitmap bitmap = Bitmap  

                .createBitmap(  

                        drawable.getIntrinsicWidth(),  

                        drawable.getIntrinsicHeight(),  

                        drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  

                                : Bitmap.Config.RGB_565);  

        Canvas canvas = new Canvas(bitmap);  

        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),  

                drawable.getIntrinsicHeight());  

        drawable.draw(canvas);  

        return bitmap;  

    }  

  

11、 Bitmap转换成Drawable  

    public Drawable bitmap2Drawable(Bitmap bitmap) {  

        BitmapDrawable bd = new BitmapDrawable(bitmap);  

        Drawable d = (Drawable) bd;  

        return d;  

    } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  实习