Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

一个超级强大的一行代码图片压缩工具,支持多个压缩、单个压缩、压缩后的bitmap

Notifications You must be signed in to change notification settings

Hu12037102/ImageCompress

Open more actions menu

Repository files navigation

ImageCompress

由于公司项目APP对图片的处理较多,刚开始上手,到处OOM,实在让人脑壳疼!项目迭代到今天有10个月吧!对图片处理也有一些深刻的理解!看了市面上的传统压缩方法!压缩质量虽然可以,但是有些图片失真严重。故此,写一个图片压缩框架,供大家参考,欢迎提意见!

运行效果预览

压缩运行效果预览

多图压缩预览

animation

压缩图片大小预览

animation

使用方法(很简单:简直能用一行代码解决)

拓展性强:
1、可以自定义压缩图片的宽高(默认:1280*720);
2、默认压缩大小为150kb(可以根据自己需求设置),超过150kb压缩,小于不压缩;
3、一行代码解决。

依赖方法

1、 gradle依赖:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.Hu12037102:ImageCompress:2.3.0'
}

/**
 *压缩一张图片
 * @param imageConfig   bean
 * @param onImageResult file回调数据
 */
 CompressImageTask.get().compressImage(SingChoiceImageActivity.this,ImageConfig.getDefaultConfig(mImageFile.getAbsolutePath()), new CompressImageTask.OnImageResult() {
                        @Override
                         public void startCompress() {
                               //压缩前可以选择加载LoadingView
                         }
                        @Override
                        public void resultFileSucceed(File file) {
                             //成功回调
                        }

                        @Override
                        public void resultFileError() {
                          //失败回调
                        }
                    });
/**
 *压缩多张图片(集合)
 * @param list  图片集合
 * @param onImagesResult  file集合回调数据
 */
 CompressImageTask.get().compressImages(MultipleChoiceImageActivity.this, data, new CompressImageTask.OnImagesResult() {
                    @Override
                     public void startCompress() {
                                 //压缩前可以选择加载LoadingView
                           }
                     @Override
                     public void resultFilesSucceed(List<File> fileList) {
                         //成功回调
                     }

                     @Override
                     public void resultFilesError() {
                         //失败回调
                     }
                 });
        
/**
 *压缩生成bitmap
 * @param imageConfig  bean
 * @param onBitmapResult  bitmap结果回调
 */
  CompressImageTask.get()
  .compressBitmap(MultipleChoiceImageActivity.this,ImageConfig.getDefaultConfig(mImageFile.getAbsolutePath()), new CompressImageTask.OnBitmapResult() {
             @Override
              public void startCompress() {
               //压缩前可以选择加载LoadingView
              }
           @Override
           public void resultBitmapSucceed(Bitmap bitmap) {//结果成功回调

           }

           @Override
           public void resultBitmapError() {//结果失败回调

           }
       });

       public class ImageConfig {
           /**
            * 压缩默认宽为720px
            */
           public int compressWidth = 720;
           /**
            * 压缩默认长为1280px
            */
           public int compressHeight = 1280;
           public String imagePath;


           public ImageConfig(String imagePath) {
               this.imagePath = imagePath;
           }

           public ImageConfig() {
           }

           /**
            * 图片格式
            */
           public Bitmap.CompressFormat format = Bitmap.CompressFormat.JPEG;

           /**
            * 图片质量
            */
           public Bitmap.Config config = Bitmap.Config.ARGB_8888;


           /**
            * 默认缓存的目录
            */
           public String cachePathDirectory = FileUtils.FILE_DIRECTOR_NAME;

           /**
            * 默认的缓存图片名字
            */
           public String imageName = "/hxb_" + String.valueOf(System.currentTimeMillis()) + UUID.randomUUID().toString().replaceAll("-", "").trim() + ".jpg";

           public int compressSize = CompressPicker.COMPRESS_SIZE;


               /**
                * 调用默认压缩的图片配置属性
                */
                   public static ImageConfig getDefaultConfig(String filePath){
                       return new ImageConfig(filePath);
                   }

       }
}

###代码混淆 -keep public class utils.bean.**{*;}

联系方式

QQ:1069305953
邮箱:1069305953@qq.com
微博:Mr_胡小白二胡

About

一个超级强大的一行代码图片压缩工具,支持多个压缩、单个压缩、压缩后的bitmap

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.