Android图片压缩框架-Tiny
2017-04-27 14:22
411 查看
目的
为了简化对图片压缩的调用,提供最简洁与合理的api压缩逻辑,对于压缩为Bitmap根据屏幕分辨率动态适配最佳大小,对于压缩为File优化底层libjpeg的压缩,整个图片压缩过程全在压缩线程池中异步压缩,结束后分发回UI线程。
支持的压缩类型
Tiny图片压缩框架支持的压缩数据源类型:
1、Bytes
2、File
3、Bitmap
4、Stream
5、Resource
6、Uri(network、file、content)
Tiny支持单个数据源压缩以及批量压缩,支持的压缩类型:
1、数据源—>压缩为Bitmap
2、数据源—>压缩为File
3、数据源—>压缩为File并返回压缩后的Bitmap
4、批量数据源—>批量压缩为Bitmap
5、批量数据源—>批量压缩为File
6、批量数据源—>批量压缩为File并返回压缩后Bitmap
压缩参数
Tiny.BitmapCompressOptions
Bitmap压缩参数可配置三个:1、width
2、height
3、Bitmap.Config
如果不配置,
Tiny内部会根据屏幕动态适配以及默认使用
ARGB_8888
Tiny.FileCompressOptions
File压缩参数可配置四个:1、quality-压缩质量,默认为76
2、isKeepSampling-是否保持原数据源图片的宽高
3、fileSize-压缩后文件大小
4、outfile-压缩后文件存储路径
如果不配置,
Tiny内部会根据默认压缩质量进行压缩,压缩后文件默认存储在:ExternalStorage/Android/data/${packageName}/tiny/目录下
接入
见项目README压缩为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 } });
Tiny与微信朋友圈的压缩率比较
下面是使用Tiny图片压缩库进行压缩的效果对比示例:图片信息 | Tiny | |
---|---|---|
6.66MB (3500x2156) | 151KB (1280x788) | 135KB (1280x789) |
4.28MB (4160x3120) | 219KB (1280x960) | 195KB (1280x960) |
2.60MB (4032x3024) | 193KB (1280x960)) | 173KB (1280x960) |
372KB (500x500) | 38.67KB (500x500) | 34.05KB (500x500) |
236KB (960x1280) | 127KB (960x1280) | 118KB (960x1280) |
Tiny项目地址
Tiny
也谈图片压缩
参考:http://zhengxiaoyong.me/2017/04/23/Android%E5%9B%BE%E7%89%87%E5%8E%8B%E7%BC%A9%E6%A1%86%E6%9E%B6-Tiny/?utm_source=tuicool&utm_medium=referral相关文章推荐
- Android Tiny集成图片压缩框架的使用
- Android图片压缩框架-Tiny 集成(抄来的,防止网页没有了,搬到自己家里)
- Android图片压缩框架-Tiny 集成
- android 和RxJava配合使用的两个图片压缩框架LuBan、Compressor
- Android平台上最快的图片压缩框架
- Android apk瘦身之使用TinyPng压缩图片
- android基于libjpeg-turbo的图片压缩框架
- BitmapEditor 高效优雅的的Android图片压缩框架
- 可能是 Android 平台上最快的图片压缩框架
- Android Zxing框架扫描解决扫描框大小,图片压缩问题
- Android对图片的压缩读取和保存
- [Android算法] bitmap 将图片压缩到指定的大小
- android 图片压缩,可压缩至任意大小(高和宽)
- android 图片压缩的方法
- Android 图片压缩也即生成缩略图方法
- Android压缩图片的几种方法
- Android关于ListView显示SD卡上的Bitmap的图片(图片压缩之后)
- Android 图像系列: 图片的压缩
- Android_Message里面彩信图片的压缩方法
- Android:指定分辨率和清晰度的图片压缩方法源码