Luban图片压缩,最接近微信的图片压缩

一般来说,现在上传图片基本上都需要,当然自己写的也是可以的,但是今天介绍的这个从介绍上基本上就显示了它的NB之处,当然能够用人名最为框架名的基本上都是有他的厉害之处,不然不敢拿出来。
github地址 Luban https://github.com/Curzibn/Luban
现在开始使用 implementation 'top.zibin:Luban:1.1.3'

图片压缩效果

效果就是这样了,现在开始使用:

   Luban.with(mContext)
                .ignoreBy(100)      //默认100K一下的图片不进行压缩
                .load(pathList)     //设置数据源
                .setTargetDir(targetDir)    //压缩后的文件地址
                .setCompressListener(new OnCompressListener() {
                    @Override
                    public void onStart() {
                        //压缩开始 显示LoadingView
                    }

                    @Override
                    public void onSuccess(File file) {
                        //压缩成功 关闭LoadingView 保存每一张图片的地址
                    }

                    @Override
                    public void onError(Throwable e) {
                        //压缩失败 关闭LoadingView
                    }
                }).launch();    //启动压缩
    Flowable.just(pathList)
                .observeOn(Schedulers.io())
                .map(new Function, List>() {
                    @Override public List apply(@NonNull List list) throws Exception {
                        return Luban.with(mContext).load(list).get();
                    }
                })
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber>() {
                    @Override
                    public void onSubscribe(Subscription s) {

                    }

                    @Override
                    public void onNext(List files) {
                        //获取到了存放图片列表的数据
                    }

                    @Override
                    public void onError(Throwable t) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });

使用么反正就是这样的,很简单的方法。原理的话,github上的原文已经是非常详细了,建议大家过去看看。

你可能感兴趣的:(Luban图片压缩,最接近微信的图片压缩)