压缩方面:尺寸、采样、质量三个方面进行压缩
优化:三星等部分手机的图片角度处理
扩展:压缩后图片最大宽高设定(压缩后尺寸接近设定最大值)、质量、格式、配置设定
//可以构造者方式设置,也可以创建对象设置属性值(不设定采用默认配置) 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();