Skip to content

一个灵活好用的图片压缩库

Notifications You must be signed in to change notification settings

reactivecat/TCompress

 
 

Repository files navigation

TCompress

Hello,这是一个Android图片压缩库

压缩方面:尺寸、采样、质量三个方面进行压缩
优化:三星等部分手机的图片角度处理
扩展:压缩后图片最大宽高设定(压缩后尺寸接近设定最大值)、质量、格式、配置设定

预览图:


创建对象:

        //可以构造者方式设置,也可以创建对象设置属性值(不设定采用默认配置)
        TCompress tCompress = new TCompress.Builder()
                .setMaxWidth(700)
                .setMaxHeight(900)
                .setQuality(80)
                .setFormat(Bitmap.CompressFormat.JPEG)
                .setConfig(Bitmap.Config.RGB_565)
                .build();
        //  TCompress tCompress = new TCompress();
        //  tCompress.setConfig(Bitmap.Config.RGB_565);
        //  tCompress.setFormat(Bitmap.CompressFormat.WEBP);
        //  tCompress.setQuality(80);
        //  tCompress.setMaxWidth(800);
        //  tCompress.setMaxHeight(800);

同步压缩图片:

        //支持四种压缩转化,文件、Bitmap到压缩后的文件、Bitmap
        File compressedFile = tCompress.compressedToFile(mFile);
        
        if (compressedFile == null) {
            //请查看文件权限问题(其他问题基本不存在,可以查看日志详情)
            return;
        }
        showData(compressedFile);

        //另外三种
        File compressedFile1 = tCompress.compressedToFile(mBitmap);
        Bitmap compressedBitmap = tCompress.compressedToBitmap(mFile);
        Bitmap compressedBitmap1 = tCompress.compressedToBitmap(mBitmap);

      


异步压缩图片:

        //泛型设置回调方法第二个参数类型。如果不指定泛型,也可以根据方法名的ToFile、ToBitmap进行强转
        //文件压缩到指定文件
        tCompress.compressToFileAsync(mFile, new OnCompressListener<File>() {
            //非抽象方法,可选监听 默认不重写
            @Override
            public void onCompressStart() {
            //   showToast("开始压缩");
            }

            //抽象方法,必选监听   默认重写
            @Override
            public void onCompressFinish(boolean success, File file) {
                if (success) {
                    showData(file);
                }
                else {
                    //请查看文件权限问题(其他问题基本不存在,可以查看日志详情)
                }
            }
        });
        //----------------其他三种异步压缩类似-------------
        //  otherThreeAsync();

具体细节用法,下载查看Demo

模板依赖:  项目里面的tcompress模板

gradle依赖:   compile 'com.jkt:tcompress:1.2.3'

About

一个灵活好用的图片压缩库

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%