compresso
打开应用

常见问题

关于 Compresso 免费浏览器图片优化工具及 3.6 KB JavaScript 库的直接解答。

如何在上传前在浏览器中压缩图片?
从 input 读取文件,传入 compress(file, { quality, maxWidth }),然后上传 result.file。一切都在客户端运行——图片在你上传之前不会离开浏览器。请参阅文档中的快速入门。
如何在 JavaScript 中将 HEIC 图片转换为 JPEG 或 WebP?
将 .heic 或 .heif 文件直接传入 compress(file, { format: "auto" })。Compresso 在 Safari 上原生解码 HEIC,在其他浏览器上通过懒加载 WASM 解码器,然后输出标准 Web 格式。
为什么压缩后的图片比原图还大?
大多数工具在将已高效的源文件(如 iPhone HEIC)重新编码为 JPEG 时可能会变大。Compresso 保证有损输出绝不会如此:文件大小上限为源文件大小;在不支持 WebP/AVIF 的浏览器上会降低分辨率,而不是让文件膨胀。
需要服务器或后端吗?
不需要。Compresso 100% 在客户端运行(Canvas API)。无需服务器、无需 API 密钥,图片不会上传到任何第三方。
支持 React、Vue 和 Next.js 吗?
支持——与框架无关。在任何上传流程中从 compresso.js 导入 compress 即可。仓库中提供 React、Vue、Svelte、Angular 和 Next.js 示例。
如何并行压缩多张图片而不阻塞界面?
从 compresso.js/pool 导入 createPool——它运行 Web Worker 池,API 相同,在不支持 Worker 的环境自动回退到主线程。
我的网站有严格的 CSP——为什么 HEIC 输入会失败?
通常是因为 script-src 缺少 wasm-unsafe-eval(HEIC 解码器基于 WASM),或使用 compresso.js/pool 时缺少 worker-src self。请参阅文档中的 CSP 部分。

GitHub · npm