首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android-图片压缩-2行搞定图片压缩【2019】

Android-图片压缩-2行搞定图片压缩【2019】

作者头像
圆号本昊
发布2021-09-24 12:20:06
发布2021-09-24 12:20:06
2.1K00
代码可运行
举报
文章被收录于专栏:github@hornhuanggithub@hornhuang
运行总次数:0
代码可运行

图片压缩的方法有很多,这两天向同学学了一种方法,刚觉非常行之有效,与大家分享。


图片压缩的作用:

当我们上传图片到数据库时,如果是头像图片,那么在客户端显示出来一般是缩略图,这时大图是没有用的,又浪费加载时间


图片压缩的方法

代码语言:javascript
代码运行次数:0
运行
复制
/*
压缩路径下的文件
 */
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;
}

使用解析

代码语言:javascript
代码运行次数:0
运行
复制
bitmap=Bitmap.createScaledBitmap(bitmap, 400, 400, false);

这段代码将图片大小压缩到 400*400

代码语言:javascript
代码运行次数:0
运行
复制
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);
Bitmap newBitmap = BitmapFactory.decodeStream(new ByteArrayInputStream(baos.toByteArray()), null, null);

这段将图片质量减少到原来的一半


最后返回的File 为图片在内存中的暂存地址,自动释放,不用手动删除

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 图片压缩的方法有很多,这两天向同学学了一种方法,刚觉非常行之有效,与大家分享。
  • 图片压缩的作用:
  • 图片压缩的方法
  • 使用解析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档