Hu12037102 ImageCompress Save

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

Project README

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 邮箱:[email protected] 微博:Mr_胡小白二胡

Open Source Agenda is not affiliated with "Hu12037102 ImageCompress" Project. README Source: Hu12037102/ImageCompress
Stars
76
Open Issues
3
Last Commit
2 years ago

Open Source Agenda Badge

Open Source Agenda Rating