github有这么一个Bitmap压缩库:Luban(鲁班)—Image compression with efficiency very close to WeChat Moments/可能是最接近微信朋友圈的图片压缩算法
因为觉得算法可能真的不错,但是这个库不符合自己需求,功能太少,所以自己根据算法打造了一款类似的Bitmap压缩工具库(bitmaptoolkit)。
bitmaptoolkit库已经上传到github了,地址是:https://github.com/JohanMan/bitmaptoolkit。
使用实例
默认是使用“可能是最接近微信朋友圈的图片压缩算法”
BitmapCompressor.with(this)
.load("要压缩的文件路径")
.compress(new BitmapCompressor.CompressCallback() {
@Override
public void onComplete(String filePath) {
imageView.setImageBitmap(BitmapFactory.decodeFile(filePath));
}
@Override
public void onError(Exception exception) {
Log.e(getClass().getName(), exception.getMessage());
}
});
当然,还提供了其他方法,满足开发者的需求(要不然直接用人家的库):
BitmapCompressor.with(this)
.load("要压缩的文件路径")
.resize(480, 640)
.limitByteSize(100 * 1024)
.config(Bitmap.Config.RGB_565)
.target("保存压缩后保存的路径")
.compress(new BitmapCompressor.CompressCallback() {
@Override
public void onComplete(String filePath) {
imageView.setImageBitmap(BitmapFactory.decodeFile(filePath));
}
@Override
public void onError(Exception exception) {
Log.e(getClass().getName(), exception.getMessage());
}
});
load: 加载要压缩的文件。
resize: 设置压缩图片的宽高
limitByteSize: 限制压缩的大小。
config: 设置压缩时的色彩模式。
target: 设置压缩后文件保存的路径。
有兴趣的可以看源码!!!