Android Tiny集成图片压缩框架的使用
发布时间 - 2026-01-11 03:22:19 点击率:次为了简化对图片压缩的调用,提供最简洁与合理的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
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
# 图片压缩框架
# Android图片压缩
# Android 基于Bitmap的四种图片压缩方式
# Android 高效图片压缩的实现
# Android开发之图片压缩实现方法分析
# Android整理好的图片压缩工具类
# Android LuBan与Compressor图片压缩方式
# android图片压缩工具类分享
# Android开发之图片压缩工具类完整实例
# Android图片压缩的实例详解
# Android图片压缩方法并压缩到指定大小
# Android三种常见的图片压缩方式
# 配以
# 大家多多
# 池中
# 默认为
# 压缩率
# 结束后
# 目录下
# https
# table
# tianyingzhong
# github
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
Laravel如何生成API文档?(Swagger/OpenAPI教程)
晋江文学城电脑版官网 晋江文学城网页版直接进入
如何在阿里云域名上完成建站全流程?
如何快速搭建FTP站点实现文件共享?
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
python中快速进行多个字符替换的方法小结
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Laravel如何实现API资源集合?(Resource Collection教程)
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
海南网站制作公司有哪些,海口网是哪家的?
怎么用AI帮你为初创公司进行市场定位分析?
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
高防服务器如何保障网站安全无虞?
如何在景安服务器上快速搭建个人网站?
韩国服务器如何优化跨境访问实现高效连接?
新三国志曹操传主线渭水交兵攻略
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
Python制作简易注册登录系统
微信小程序 require机制详解及实例代码
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
南京网站制作费用,南京远驱官方网站?
如何挑选最适合建站的高性能VPS主机?
Laravel storage目录权限问题_Laravel文件写入权限设置
如何在Ubuntu系统下快速搭建WordPress个人网站?
Android仿QQ列表左滑删除操作
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
BootStrap整体框架之基础布局组件
php485函数参数是什么意思_php485各参数详细说明【介绍】
Angular 表单中正确绑定输入值以确保提交与验证正常工作
北京网站制作公司哪家好一点,北京租房网站有哪些?
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
Laravel如何生成URL和重定向?(路由助手函数)
微信小程序 闭包写法详细介绍
如何快速搭建虚拟主机网站?新手必看指南
WEB开发之注册页面验证码倒计时代码的实现
Linux系统运维自动化项目教程_Ansible批量管理实战
如何快速搭建自助建站会员专属系统?
如何用y主机助手快速搭建网站?
JavaScript如何实现音频处理_Web Audio API如何工作?

