compresso
打开应用

开源 · 免费 · 离线可用

让图片变小,不必上传到任何地方。

Compresso 在你自己的设备上压缩、缩放并转换照片。没有任何内容会送往服务器,完全没有网络也照样能用。

无需账号。无需上传。没有体积上限。

Compresso 应用正在对比原图与压缩后的版本,下方是一批五张图片。

为什么会有它

体积上限是设计的失败,却装成你的过错找上门来。

手机随手一拍就是好几 MB。拒收它的表单只允许 5 MB,而且不会告诉你该改什么。Compresso 把这个问题收回浏览器里解决,用时不到一秒。

0 字节

从未上传

打开网络面板,看着它在一百张照片处理完的全程里保持沉默。

3.3 MB 到 93.5 KB

一次实测

结果随图片内容而变,所以这是一次真实的单次结果,而不是我们没有实测过的平均值。

3.6 KB

库核心,gzip 后

零必需依赖。只用浏览器原生能力。

应用

一切都在你的设备上完成。

免费、可安装,为你手握四十张照片、而表单一张都不收的那一刻而做。

私密源于构造

根本不存在可以接收你照片的服务器。这不是一条需要你相信的隐私政策,而是一套你可以自己验证的架构。

没有网络也能用

安装一次,在飞机上照样能跑。界面、字体和 HEIC 解码器全都存在你的设备上。

一次一百张

图片会在你的多个 CPU 核心上并行处理,所以即使一大批正在跑,界面依然顺滑。

iPhone 照片也在内

可读取 HEIC、JPEG、PNG、WebP 和 AVIF。可写出 AVIF、WebP、JPEG 和 PNG,并自动选用你浏览器能产出的最佳格式。

七种语言

英语、西班牙语、法语、德语、意大利语、葡萄牙语和中文,体积和百分比都按各自语言的习惯书写。

浅色模式下的 Compresso,同样的版面翻转为纸白与墨黑。

写给开发者

同一个引擎,作为依赖引入。

如果你更希望自己的用户永远遇不到上传失败,这套压缩内核也以库的形式提供,可以放进任何框架。

点击复制
import { compress } from 'compresso.js';

const { file, savings } = await compress(input, {
  quality: 0.8,
  format: 'auto',
});

3.6 KB,gzip 后

小到引入它不必先开个会。零必需依赖,也没有什么需要审计。

并行批量压缩,不占用主线程

compresso.js/pool 运行一个具备容错能力的 Web Worker 池——包含崩溃和超时恢复机制——让大批量图片并行压缩,同时不阻塞你的界面。

绝不返回更大的文件

有损输出的上限取你设定的体积上限与原图之中较小的那个,因为一个会把文件变大的压缩器本身就是坏的。

你的下一次上传,不必再失败。

免费开源,采用 MIT 许可证。