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 】
相关推荐:
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
如何用虚拟主机快速搭建网站?详细步骤解析
Laravel如何保护应用免受CSRF攻击?(原理和示例)
如何在Ubuntu系统下快速搭建WordPress个人网站?
中国移动官方网站首页入口 中国移动官网网页登录
JavaScript如何实现路由_前端路由原理是什么
北京的网站制作公司有哪些,哪个视频网站最好?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
如何在腾讯云服务器快速搭建个人网站?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
独立制作一个网站多少钱,建立网站需要花多少钱?
java中使用zxing批量生成二维码立牌
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
米侠浏览器网页背景异常怎么办 米侠显示修复
装修招标网站设计制作流程,装修招标流程?
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Java类加载基本过程详细介绍
如何在腾讯云服务器上快速搭建个人网站?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
北京企业网站设计制作公司,北京铁路集团官方网站?
如何挑选高效建站主机与优质域名?
如何注册花生壳免费域名并搭建个人网站?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Laravel如何使用Collections进行数据处理?(实用方法示例)
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何用IIS7快速搭建并优化网站站点?
Mybatis 中的insertOrUpdate操作
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
高端建站三要素:定制模板、企业官网与响应式设计优化
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
如何在阿里云完成域名注册与建站?
详解Android图表 MPAndroidChart折线图
高防服务器租用指南:配置选择与快速部署攻略
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Swift中swift中的switch 语句
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Bootstrap CSS布局之列表
使用Dockerfile构建java web环境

