分享一款图像压缩利器:Squoosh
Squoosh 是一款由 Google 推出的免费在线图像压缩工具,它采用了现代的 Web 技术栈,包括 React 框架,并利用 WebAssembly(WASM)技术来实现高效的图像压缩算法。这款工具能够在保持高质量的前提下,将图像文件的尺寸压缩至更小。用户可以通过简洁易用的界面选择多种压缩算法和选项,以满足不同的压缩需求。同时,Squoosh 是开源的,任何人都可以查看和修改其源代码,这也促进了技术社区的合作与创新。
Github 地址: github.com/GoogleChrom...
效果展示
3.24MB 压缩到 260KB, ↓ 90%
主要特点:
-
本地处理:所有的图像压缩过程都在本地进行,不会将用户的图像发送到服务器,保护用户的隐私和数据安全。
-
高效压缩:利用现代的 Web 技术栈和 WebAssembly 技术实现高效的图像压缩算法,能够在保持高质量的前提下将图像文件尺寸压缩至更小。
-
简洁易用:提供简洁易用的界面,用户可以轻松选择多种压缩算法和选项,以满足不同的压缩需求。
-
数据收集:使用 Google Analytics 收集基本访客数据以及图像压缩前后的大小数值等信息,但不会收集用户的图像数据。
-
开源:Squoosh 是开源的,任何人都可以查看和修改其源代码,促进了技术社区的合作与创新。
-
开发友好:提供了开发指南,使开发者可以轻松地进行开发并贡献代码。
技术栈
- JavaScript/TypeScript:项目主要使用 JavaScript 和 TypeScript 进行开发。
- Rollup:用于打包 JavaScript 模块的工具,可以将多个模块打包成一个或多个文件。
- Preact:一个轻量级的 React 替代品,用于构建用户界面。
- PostCSS:用于处理 CSS 的工具,可以对 CSS 进行预处理、后处理和转换等操作。
- WebAssembly(WASM):用于实现高效的图像压缩算法,通过 WASM 可以将性能敏感的部分编译成低级代码,提高性能。
- Husky:用于管理 Git Hooks 的工具,可以在提交、推送等操作前执行指定的脚本。
- lint-staged:用于在提交代码前对指定文件进行 lint 和格式化操作的工具。
- Serve:一个简单的静态文件服务器,用于在开发过程中提供静态文件的访问服务。
- 其他辅助工具和库:例如 prettier 用于代码格式化、comlink 用于在 Web Workers 中进行通信、npm-run-all 用于并行执行 npm 脚本等。