Android图片压缩框架-Tiny 集成
为了简化对图片压缩的调用,提供最简洁与合理的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/目录下
Tiny项目地址: https://github.com/tianyingzhong/Tiny
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) |
压缩为Bitmap
1 |
Tiny.BitmapCompressOptions options = new Tiny.BitmapCompressOptions(); |
压缩为File
1 |
Tiny.FileCompressOptions options = new Tiny.FileCompressOptions(); |
压缩为File并返回Bitmap
1 |
Tiny.FileCompressOptions options = new Tiny.FileCompressOptions(); |
批量压缩为Bitmap
1 |
Tiny.BitmapCompressOptions options = new Tiny.BitmapCompressOptions(); |
批量压缩为File
1 |
Tiny.FileCompressOptions options = new Tiny.FileCompressOptions(); |
批量压缩为File并返回Bitmap
1 |
Tiny.FileCompressOptions options = new Tiny.FileCompressOptions(); |
Android图片压缩框架-Tiny 集成的更多相关文章
- Android图片载入框架最全解析(一),Glide的基本使用方法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53759439 本文同步发表于我的微信公众号.扫一扫文章底部的二维码或在微信搜索 郭 ...
- Android 图片压缩、照片选择、裁剪,上传、一整套图片解决方案
1.Android一整套图片解决方案 http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820998&idx=1& ...
- android图片压缩方法
android 图片压缩方法: 第一:质量压缩法: private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = ...
- android图片压缩的3种方法实例
android 图片压缩方法: 第一:质量压缩法: private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = ...
- Android图片缓存框架Glide
Android图片缓存框架Glide Glide是Google提供的一个组件.它具有获取.解码和展示视频剧照.图片.动画等功能.它提供了灵活的API,帮助开发者将Glide应用在几乎任何网络协议栈中. ...
- Android 图片压缩器
概述 Android 图片压缩器:一款高效的图片压缩器库,支持批量压缩,异步压缩.多线程多任务压缩,压缩比设置等特性. 详细 代码下载:http://www.demodashi.com/demo/12 ...
- Android 图片压缩各种方式
前言:由于公司项目当中需要用到压缩这块的相应技术,之前也做过的图片压缩都不是特别的理想, 所以这次花了很多心思,仔细研究和在网上找到了很多相对应的资料.为了就是 以后再做的时候直接拿来用就可以了 ...
- Android图片压缩上传(二)
之前有用到libjpeg,还是有一定的局限性,最近用了一个新的方式,效果还是挺不错,随着作者的版本更新,Bug也随之变少,目前项目中运用已上线. 1.之前的方式Android图片压缩,不失真,上线项目 ...
- 性能优化——Android图片压缩与优化的几种方式
图片优化压缩方式大概可以分为以下几类:更换图片格式,质量压缩,采样率压缩,缩放压缩,调用jpeg压缩等1.设置图片格式Android目前常用的图片格式有png,jpeg和webp,png:无损压缩图片 ...
随机推荐
- packages/wepy-web/src/wx.js 分析storage 的加载原理 wx.getStorage(OBJECT)
是小程序实例化后 读入内存 还是每次调用从文件系统读取 https://github.com/Tencent/wepy/blob/bd0003dca2bfb9581134e1b05d4aa1d80fc ...
- typescript import 全局node_modules报错
项目里面有一个node_modules的包太大,每次放到docker里面都要下载半天,大大减少了部署效率. 所以考虑将这个node包全局安装到docker的基础镜像中,那么代码里面直接引用全局包就可以 ...
- ddchuxing——php面试题及答案
1. echo和print的区别 echo没有返回值,print有返回值1,执行失败时返回false:echo输出的速度比print快,因为没有返回值:echo可以输出一个或多个字符串,print只 ...
- 认识影片版本(CAM、TS、TC、DVD、HD、BD、TVRIP等)
许多朋友在下载电影的时候, 往往会被各种各样的版本标识弄糊涂,今天把各种版本的缩写收集在一起,希望对大家有所帮助 . 引用: 1.CAM(枪版) CAM 通常是用数码摄像机从电影院盗录.有时会使 ...
- MongoDB入门学习(三):MongoDB的增删查改
对于我们这样的菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改. 由于M ...
- PR 批量导入
REPORT ZMM_UPLOAD_PR. DATA: BEGIN OF GT_DATA1 OCCURS 0, BSART TYPE STRING, "凭证类型 ...
- 【tensorflow】tensorflow学习记录——安装、第一个程序篇
机器学习,人工智能往后肯定是一个趋势,现阶段有必要研究一两个人工智能的工具,以免自己技术落伍,其中tensorflow就是一个很不错的项目,有谷歌开发后开源,下面开始学习安装和使用 安装篇: 很不幸, ...
- Machine Learning No.7: Support Vector Machines
1. SVM hypothsis 2. large margin classification 3. kernals and similarity if f1 = 1; if x if far fr ...
- media server died的解决方法【转】
本文转载自:https://blog.csdn.net/class_brick/article/details/78086261 在对MediaRecord进行初始化时添加上 mMediaRecord ...
- 为什么在实际的 kaggle 比赛中 gbdt 和 random forest 效果非常好?
https://www.zhihu.com/question/51818176/answer/127637712