ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Tiny:3行代码把Android图片压到2.3%

Tiny:3行代码把Android图片压到2.3% Tiny3行代码把Android图片压到2.3%【免费下载链接】Tinyan image compression framework.一个高保真、高压缩比的图片压缩框架项目地址: https://gitcode.com/gh_mirrors/ti/TinyTiny是Android图片压缩框架把6.66MB大图压到151KB1280x788。适合做电商、社交等需要图片上传与展示的App。 效果速览Tiny图片压缩的数字图中原图为3500x2156、6.35MB。README实测同尺寸6.66MB图压到151KB1280x788压缩后约为原图2.3%。压缩比6.66MB → 151KB约2.3%2.60MB → 193KB输出尺寸默认最大宽高1280px可调width/height/baseline输入来源文件路径 / Bitmap / Uri / resId / byte[] / InputStream线程模型后台线程池压缩主线程回调 三步跑通Tiny图片压缩第1步加依赖app模块的build.gradle里加两行dependencies { implementation project(:tiny) implementation project(:libjpeg-turbo-sdk) }Sync后可用armeabi、armeabi-v7a、arm64-v8a、x86四种abi的libtiny.so。第2步初始化在Application的onCreate里调一次Tiny.getInstance().debug(true).init(this);这行只记录Application上下文并打开日志无其他副作用。第3步执行压缩传图片路径用asFile声明输出文件结果在回调里拿Tiny.FileCompressOptions options new Tiny.FileCompressOptions(); Tiny.getInstance().source(/sdcard/DCIM/a.jpg).asFile() .withOptions(options).compress(new FileCallback() { Override public void callback(boolean ok, String outfile, Throwable t) { // ok为true时outfile即压缩后文件路径 } });跑完你会看到回调在主线程触发缓存目录里多了一张1280px级jpg。 两个高频场景电商商品图——详情页加载与上传流量大商品原图动辄2~6MB列表页直出费流量。只改options控制输出宽度与目标体积Tiny.FileCompressOptions options new Tiny.FileCompressOptions(); options.width 1080; // 列表页显示宽度即可 options.size 300; // KB超出则继续压实测2.60MB4032x3024商品图压到193KB1280x960约为原体积1/13。社交多图分享——一次上传多张图发9张图逐张压缩要管理9个回调。把source换成数组换batchAsFileTiny.getInstance().source(new String[]{p1, p2, p3}).batchAsFile() .withOptions(new Tiny.BatchFileCompressOptions()) .batchCompress(new FileBatchCallback() { Override public void callback(boolean ok, String[] out, Throwable t) {} });按README实测比例4张20MB的相册图压完总共约700KB原图的1/30。⚙️ 按需调参参数含义默认值建议值qualityJPEG压缩质量0~100越小越压缩7675~85width / height压缩目标宽、高px0即屏幕尺寸/12801080 / 0baseline最大宽高上限px12801280 或 2560size输出文件大小上限KB超出继续压0自动200~500configBitmap内存格式ARGB_8888RGB_565内存减半推荐起步配置Tiny.FileCompressOptions options new Tiny.FileCompressOptions(); options.width 1080; options.size 300; options.quality 80;⚠️ 集成前先看这4条回调t为权限异常、拿不到文件 → Android 6.0写外部存储需权限 → 启动时动态申请WRITE_EXTERNAL_STORAGE。输出文件名不是你指定的 → outfile传了目录或非.jpg路径Tiny自动改时间戳命名 → 给options.outfile设完整.jpg路径。压缩结果变PNG、体积不降 → 源图带透明通道hasAlphaTiny自动输出PNG → 不需要透明就先抠掉透明背景。个别设备UnsatisfiedLinkError → 没选中设备对应abi → ndk.abiFilters加上armeabi-v7a/arm64-v8a/x86。Tiny是一个基于libjpeg-turbo的Android图片压缩框架单库集成支持文件、Bitmap、Uri、resId四种输入。完整源码获取git clone https://gitcode.com/gh_mirrors/ti/Tiny【免费下载链接】Tinyan image compression framework.一个高保真、高压缩比的图片压缩框架项目地址: https://gitcode.com/gh_mirrors/ti/Tiny创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表