图压APP是一款纯本地的图片批量压缩工具。只需把手机里的照片、截图、设计图丢进去,按你设定的强度或目标体积压缩,处理完成后直接保存回你指定的文件夹——不联网、不上传、不注册、不要存储权限。总结就是这APP能够把图压小,存回你选的地方,全程只在这台手机上完成。很适合用来处理那些要上传到网络上的大型图片。

【纯本地处理】
全程不联网。无埋点、无广告、无自动更新、无账号。已有守门探针静态扫描全量前端代码,命中外链/请求即构建失败。
【不需要存储权限】
选图和保存都通过系统「文档/文件夹」授权(SAF)完成,App 不申请任何存储权限。Android 10+ 的相册兜底同样零权限。
【保存 = 写进文件夹】
「保存」只做一件事:把压缩结果写进你指定的目录,失败会如实告诉你原因。它不会偷偷改成弹分享面板。
【分享 = 另一个动作】
想把图发给微信/QQ/蓝牙,用任务卡片上的「分享」按钮,走系统分享面板;它不落盘到你的文件夹。两个动作清清楚楚,互不替代。
【批量处理】
一次可添加任意多张图,统一设置、逐张处理,支持「全部保存」。
【五类格式】
输入支持 JPG / PNG / GIF / WebP / SVG;输出可保持原格式,也可统一转成 JPG 或 PNG。
【信息透明】
每张图旁显示缩略图、处理状态、压缩前后体积与节省比例;落盘位置会明确说出「已保存到…」。
1、按强度:拖动滑块 1–10,数值越大压得越狠。
JPG:质量 = 100 − 强度×10(1 → 质量 90,10 → 质量 0)
PNG:强度 1–2 走无损优化;3–10 走调色板量化(颜色数随强度下降)
GIF:颜色数 = round(((10−强度)/9)×223)+32(1 → 255 色,10 → 32 色)
WebP:质量 = 100 − 强度×10
按目标体积:设定一个体积上限(10 KB / 100 KB / 500 KB / 1 MB / 2 MB / 5 MB / 100 MB,档位间可平滑调节),引擎用二分逼近最多 6 轮,尽量把每张图压到该体积以下。

2、尺寸调整
直接填「宽」「高」(单位 px),留空则不改尺寸。
勾选保持比例:只填一边时按原比例自动推算另一边(批量处理不同尺寸的照片时,得到的是「统一缩到该宽度」,而不是硬拉成同一尺寸)。
一键比例:原尺寸 / 75% / 50% / 25% / 清空。
铺满裁剪:先等比放大铺满目标框,再居中裁剪到指定宽高。
说明:GIF 与 SVG 不参与尺寸调整(与桌面端一致)。多张图时,填写的宽高对每张图分别生效。
3、输出
保持原格式 / 转 JPG / 转 PNG。
文件名后缀可自定义,默认 -tuya(如 photo.jpg → photo-tuya.jpg)。
第1步 · 选图点 「选择图片」(只列图片)或 「从文件」(列出全部文件)。

第2步 · 设定压缩参数
第3步 · 开始压缩回到主区点 「开始压缩」。任务卡片会逐张显示「压缩中 → 完成」
第 4步 · 保存
单张:点任务卡片上的 「保存」。
多张:点右上角 「全部保存」,一次写完所有已完成任务。
成功后按钮变「已保存」,并弹出提示,例如 已保存到原文件夹:IMG_0001-tuya.jpg。

Q:需要联网吗?会上传我的照片吗?
不会。全程离线,数据不出本机。项目内置守门脚本静态扫描全部前端代码,一旦出现外部链接或网络请求即视为构建失败。
Q:为什么不用授权存储权限?
选图和保存都走系统的文档/文件夹授权(SAF),由系统逐次确认,App 自身不持有存储权限。Android 10 及以上的相册兜底(见下)同样无需权限。
Q:默认「原文件夹」会要我另外选一次目录吗?
不会。它直接用你选图时所在的那个文件夹;压缩结果就新建在同一个子目录里(例如原图在 DCIM/Camera,结果也落在 DCIM/Camera),不会跑到别处。
Q:「已是最小」是什么意思?
这张图压缩后反而更大,引擎判定压缩没有意义,于是保留原图、不产出新文件。这类任务只提供「分享」(发原图),不提供「保存」。
Q:保存失败提示「目录授权已失效」怎么办?
系统里那次目录授权已被撤销或失效。按提示在「保存路径」里重新选一次目标文件夹即可(授权需在当时那一次拿到写权限,旧授权无法自动升级)。
Q:来源目录不可写、或图是从系统相册选的怎么办?
App 会走相册兜底:把结果写入系统的 相册/图压(Pictures/图压)目录,并如实告诉你落点,不会假装存进了原文件夹。这样保存永远有去处。