开源项目设计创作类新手
Squish - 基于浏览器的批量图片压缩工具
Squish 是 addyosmani 开源的现代化浏览器端图片压缩工具,借助 WebAssembly 实现高性能图像优化。它支持 AVIF、JPEG(MozJPEG)、JPEG XL、PNG(OxiPNG)和 WebP 多种格式,提供批量处理、格式转换、按格式调节质量、实时预览与体积缩减统计,压缩过程完全在浏览器本地完成,无需上传服务器。
0 次阅读2026/09/10 发布
社区作者 · zZz
它解决什么问题
项目用途
Squish 是一个基于浏览器的图片压缩工具,利用 WebAssembly 实现高性能图像优化,支持多种格式,并通过直观界面在尽量不牺牲质量的前提下压缩图片。
配图 1(教程配图)为来源检测到的项目教程配图,来自项目站点 squish.addy.ie。
支持格式
- AVIF(AV1 Image Format)
- JPEG(使用 MozJPEG)
- JPEG XL
- PNG(使用 OxiPNG)
- WebP
关键能力
- 浏览器端压缩,无需上传服务器
- 批量处理
- 格式转换
- 按格式调节质量
- 实时预览
- 体积缩减统计
- 拖拽上传界面
- 面向大量文件的智能队列
技术栈
- React + TypeScript 构建界面
- Vite 提供快速开发体验
- WebAssembly 实现接近原生速度的图像处理
- Tailwind CSS 负责样式
- jSquash 提供图像编解码器实现
使用流程
- 拖放或选择图片:把图片拖到上传区域,或点击选择文件。
- 选择输出格式:AVIF、JPEG、JPEG XL、PNG 或 WebP。
- 调整质量:用质量滑块在文件体积与图像质量之间做权衡。
- 下载:单张下载,或使用“Download All”按钮批量下载。
默认质量设置
- AVIF:50%
- JPEG:75%
- JPEG XL:75%
- PNG:无损
- WebP:75%
许可证
本项目采用 MIT 许可证,详见仓库中的 LICENSE 文件。
适用对象
需要批量压缩、转换图片格式或优化素材体积的前端开发者、设计师、内容运营与站点性能优化人员;由于压缩在本地浏览器完成,也适合对图片隐私和不上传服务器有要求的用户。
致谢
- jSquash:提供 WebAssembly 图像编解码器
- MozJPEG:JPEG 压缩
- libavif:AVIF 支持
- libjxl:JPEG XL 支持
- Oxipng:PNG 优化
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
准备环境
- Node.js 18 或更高版本
npm 7 或更高版本安装与运行步骤(按来源给出的先后顺序)
- 克隆仓库:
git clone https://github.com/addyosmani/squish.git
cd squish- 安装依赖:
npm install- 启动开发服务器:
npm run dev- 构建生产版本:
npm run build首次运行
执行
npm run dev 启动开发服务器后,在浏览器中打开终端提示的本地地址即可使用:拖放或点击选择图片,选择输出格式,调整质量滑块,然后下载单张图片或点击“Download All”批量下载。
常见问题
来源 README 未列出常见问题(如端口冲突、浏览器兼容性、构建失败排查等)的具体说明,相关细节待核验。
来源教程配图

适用场景
批量压缩产品图或博客配图
减小页面体积
把既有图片批量转换为 AVIF
WebP 或 JPEG XL 等现代格式
在不希望把图片上传到第三方服务器的前提下完成本地压缩
为前端项目准备多格式图片资源并进行质量与体积的取舍实验
快速预览不同质量参数下的压缩效果并统计体积缩减比例