Android图片压缩

2018-12-20  本文已影响0人  伤心的鱼嗯

// 压缩图片,显示好的效果同时降低图片大小

  public Bitmap compress(String path) {

        int maxWidth=1020;

        int maxHeight=605; 

        //图片内存压缩

        BitmapFactory.Options options=new BitmapFactory.Options();

//         String path= Environment.getExternalStorageDirectory()+"/test2.jpg";

        //控制我们每个像素占有的字节数

//         options.inPreferredConfig= Bitmap.Config.ARGB_8888;

        //获取宽高---不加载Bitmap对象 

        //只加载Bitmap的边,而不加载实际数据

        options.inJustDecodeBounds=true;

        Bitmap bitmap= BitmapFactory.decodeFile(path,options);

        Log.e("wy", "不加载实际数据的bitmap:"

        + "  "+bitmap+"宽:"+options.outWidth+"高:  "+options.outHeight);

        //运算缩放比例

        int scaleNum=1;

        while(options.outWidth/scaleNum>maxWidth ||options.outHeight/scaleNum>maxHeight){

            scaleNum*=2;

        }

        Log.e("wy", "运算后的缩放倍数:"+scaleNum);

        //设置加载图片时的压缩比例

        //此处缩放比例,如果该值是2的整数次幂,则直接取值,如果不是,则向下取最近的一个2的整数次幂

        options.inSampleSize=scaleNum;

        options.inJustDecodeBounds=false;

        Bitmap bitmapnew= BitmapFactory.decodeFile(path,options);

        Log.e("wy", "压缩后图片大小:"+bitmapnew.getByteCount()+

        "图片宽高:"+bitmapnew.getWidth()+"  "+bitmapnew.getHeight());

return bitmapnew;

    }

上一篇下一篇

猜你喜欢

热点阅读