好用的Android图片压缩工具–Luban(android 图片压缩工具类)

前阵子歪哥参与的项目有这样一个功能,就是在手机上拍一张照片传到服务端,看起来很简单,但没有经验的我还是发现了一些小问题,最关键的就是相机默认拍出来的图片太大了,有2~3M左右。
平时拍照没注意过这些,但涉及到开发就不行了,除了接口调用慢之类的问题外,还有一点,出于种种考虑,服务端没有使用文件存储,而是将图片做base64编码,然后存在数据库里。一个2~3M的图片base64下来有几百万个字符,虽然用longtext还是能存下的,但查询肉眼可见的慢。
于是考虑在Android端先做一下图片压缩,毕竟在本需求里甚至大多数需求里不会对图片质量有那么高的要求。

Luban

图片压缩是很成熟的技术了,这次歪哥选用了人气很高的Luban工具,先看一下基本的使用。
首先引入依赖

implementation 'top.zibin:Luban:1.1.8'

然后是最基本的使用

Luban.with(getContext()) .load(file) //原始图片 .setTargetDir(getContext().getExternalFilesDir(null).getPath()) .setCompressListener(new OnCompressListener() { @Override public void onStart() // 压缩开始前的回调 } @Override public void onSuccess(File file) { // 压缩成功后的回调,file为压缩后的图片文件 // TODO 业务逻辑 } @Override public void onError(Throwable e) { // 压缩过程中发生错误的回调 Toast.makeText(getContext(), "图片压缩异常", Toast.LENGTH_SHORT).show(); } }).launch(); // 启动压缩任务

压缩效果还是不错的,几兆的图片被压缩成100k左右,十倍以上的压缩比例了,对图片清晰度影响不是很大。base64之后也只有十几万字符了。

仿微信压缩策略

据说Luban是仿照微信朋友圈图片的压缩策略,逆推出的压缩算法,属实有点东西,并且实用接地气,有人把两者做了对比,基本相差不多了。

好用的Android图片压缩工具--Luban(android 图片压缩工具类)

除了Luban外,还有不少图片压缩工具,对于普通需求来说,可能都是够用的,不用特别纠结使用哪个。

好用的Android图片压缩工具--Luban(android 图片压缩工具类)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月21日 上午9:20
下一篇 2024年5月21日 上午9:31

相关推荐