当我们上传图片到数据库时,如果是头像图片,那么在客户端显示出来一般是缩略图,这时大图是没有用的,又浪费加载时间
/*
压缩路径下的文件
*/
private File imageFactory(String picPath){
BitmapFactory.Options o=new BitmapFactory.Options();
Bitmap bitmap=BitmapFactory.decodeFile(picPath, o);
bitmap=Bitmap.createScaledBitmap(bitmap, 400, 400, false);
File root= getExternalCacheDir();
File pic=new File(root,"test.jpg");
try {
FileOutputStream fos=new FileOutputStream(pic);
bitmap.compress(Bitmap.CompressFormat.JPEG,50,fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return pic;
}
bitmap=Bitmap.createScaledBitmap(bitmap, 400, 400, false);
这段代码将图片大小压缩到 400*400
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);
Bitmap newBitmap = BitmapFactory.decodeStream(new ByteArrayInputStream(baos.toByteArray()), null, null);
这段将图片质量减少到原来的一半
最后返回的File 为图片在内存中的暂存地址,自动释放,不用手动删除