(原创)介绍一个优秀的图片压缩库Compressor

我们在做项目的时候,有时候需要在界面展示一张较大的图片

 

这时候我们应该想到两点

1图片是否能够缓存

2图片是否能够压缩

做到了缓存和压缩,才能尽可能低减少内存的负荷,增强app的流畅度

最近在了解这方面的知识

有幸找到了一个图片压缩库,分享给大家

先上一张官方的图来说明压缩效果

可以很明显地看到效果

下面介绍具体使用方法

首先你需要在gradle中引用这个库

compile 'id.zelory:compressor:1.0.4'

压缩图像文件方法如下,只有一行代码哦

compressedImageFile = Compressor.getDefault(this).compressToFile(actualImageFile);

这个方法返回的是一个File文件类型

压缩Bitmap方法如下

compressedImageBitmap = Compressor.getDefault(this).compressToBitmap(actualImageFile);

也是只返回Bitmap类型

然后是自定义了

compressedImage = new Compressor.Builder(this)
            .setMaxWidth(640)
            .setMaxHeight(480)
            .setQuality(75)
            .setCompressFormat(Bitmap.CompressFormat.WEBP)
            .setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory(
              Environment.DIRECTORY_PICTURES).getAbsolutePath())
            .build()
            .compressToFile(actualImage);

还有一种Rxjava的方式进行压缩

Compressor.getDefault(this)
        .compressToFileAsObservable(actualImage)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Action1<File>() {
            @Override
            public void call(File file) {
                compressedImage = file;
            }
        }, new Action1<Throwable>() {
            @Override
            public void call(Throwable throwable) {
                showError(throwable.getMessage());
            }
        });

总的就是这些啦,最后再推荐另外一款压缩图片的库

https://github.com/Curzibn/Luban

大家可以自己去研究了解,谢谢大家!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值