Android Tiny集成图片压缩框架的使用

为了简化对图片压缩的调用,提供最简洁与合理的api压缩逻辑,对于压缩为Bitmap根据屏幕分辨率动态适配最佳大小,对于压缩为File优化底层libjpeg的压缩,整个图片压缩过程全在压缩线程池中异步压缩,结束后分发回UI线程。

支持的压缩类型

Tiny图片压缩框架支持的压缩数据源类型:

1、Bytes2、File3、Bitmap4、Stream5、Resource6、Uri(network、file、content)

Tiny支持单个数据源压缩以及批量压缩,支持的压缩类型:

1、数据源—>压缩为Bitmap2、数据源—>压缩为File3、数据源—>压缩为File并返回压缩后的Bitmap4、批量数据源—>批量压缩为Bitmap5、批量数据源—>批量压缩为File6、批量数据源—>批量压缩为File并返回压缩后Bitmap

压缩参数

Tiny.BitmapCompressOptions

Bitmap压缩参数可配置三个:

1、width2、height3、Bitmap.Config

如果不配置,Tiny内部会根据屏幕动态适配以及默认使用ARGB_8888

Tiny.FileCompressOptions

File压缩参数可配置四个:

1、quality-压缩质量,默认为762、isKeepSampling-是否保持原数据源图片的宽高3、fileSize-压缩后文件大小4、outfile-压缩后文件存储路径

如果不配置,Tiny内部会根据默认压缩质量进行压缩,压缩后文件默认存储在:ExternalStorage/Android/data/${packageName}/tiny/目录下

Tiny项目地址: https://github.com/tianyingzhong/Tiny

Tiny与微信朋友圈的压缩率比较

下面是使用Tiny图片压缩库进行压缩的效果对比示例:

图片信息 Tiny Wechat 6.66MB (3500×2156) 151KB (1280×788) 135KB (1280×789) 4.28MB (4160×3120) 219KB (1280×960) 195KB (1280×960) 2.60MB (4032×3024) 193KB (1280×960)) 173KB (1280×960) 372KB (500×500) 38.67KB (500×500) 34.05KB (500×500) 236KB (960×1280) 127KB (960×1280) 118KB (960×1280)

压缩为Bitmap

Tiny.BitmapCompressOptions options = new Tiny.BitmapCompressOptions();Tiny.getInstance().source("").asBitmap().withOptions(options).compress(new BitmapCallback() {  @Override  public void callback(boolean isSuccess, Bitmap bitmap) {    //return the compressed bitmap object  }});

压缩为File

 Tiny.FileCompressOptions options = new Tiny.FileCompressOptions();Tiny.getInstance().source("").asFile().withOptions(options).compress(new FileCallback() {  @Override  public void callback(boolean isSuccess, String outfile) {    //return the compressed file path  }});

压缩为File并返回Bitmap

 Tiny.FileCompressOptions options = new Tiny.FileCompressOptions();Tiny.getInstance().source("").asFile().withOptions(options).compress(new FileWithBitmapCallback() {  @Override  public void callback(boolean isSuccess, Bitmap bitmap, String outfile) {    //return the compressed file path and bitmap object  }});

批量压缩为Bitmap

 Tiny.BitmapCompressOptions options = new Tiny.BitmapCompressOptions();Tiny.getInstance().source("").batchAsBitmap().withOptions(options).batchCompress(new BitmapBatchCallback() {  @Override  public void callback(boolean isSuccess, Bitmap[] bitmaps) {    //return the batch compressed bitmap object  }});

批量压缩为File

 Tiny.FileCompressOptions options = new Tiny.FileCompressOptions();Tiny.getInstance().source("").batchAsFile().withOptions(options).batchCompress(new FileBatchCallback() {  @Override  public void callback(boolean isSuccess, String[] outfile) {    //return the batch compressed file path  }});

批量压缩为File并返回Bitmap

 Tiny.FileCompressOptions options = new Tiny.FileCompressOptions();Tiny.getInstance().source("").batchAsFile().withOptions(options).batchCompress(new FileWithBitmapBatchCallback() {  @Override  public void callback(boolean isSuccess, Bitmap[] bitmaps, String[] outfile) {    //return the batch compressed file path and bitmap object  }});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

失败是成功的亲娘,没有失败哪来的成功呢?诺贝尔如果不经历千万次的失败,

Android Tiny集成图片压缩框架的使用

相关文章:

你感兴趣的文章:

标签云: