// 压缩图片,显示好的效果同时降低图片大小
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;
}
网友评论