Squoosh:谷歌出品的免费开源图片压缩工具,图片大小减少90%

发布于 2023-11-30

Squoosh

图片压缩 by Google

Squoosh

关于 Squoosh

Squoosh 是谷歌出品的一款在线图像压缩工具,使用简单,有极高的压缩比,能够帮助我们把图片大小进行压缩,不管是设计 UI 切图、自媒体文章配图还是 PPT 配图这样的使用场景,都要用到压缩图片。

https://squoosh.app/

App

https://github.com/matiasbenedetto/squoosh-desktop-app

Squoosh Desktop App 基于 Squoosh、Electron,在 Windows、Linux 上实现了 Squoosh 离线版,无需网络就能使用。 Squoosh Desktop App 将 Squoosh 打包并创建为独立应用,最重要的是可以离线使用,就非常方便了。

Squoosh 的功能特性

  • 压缩率很高,在保存图片清晰度的同时大幅降低文件大小
  • 使用简单,打开浏览器就,拖入或选择图片就能使用
  • 支持生成 JPG / PNG / WEBP 等多种常用图片格式
  • 支持高级的压缩功能,比如旋转、裁剪、调色、平滑等
  • 支持开发者集成在自己的项目中,通过简单的 api 来实现图片压缩
  • 利用浏览器自身的算力来完成压缩,不会上传图片,速度快,也很安全

开发集成图片压缩

// install
npm install @squoosh/lib

// init
import { ImagePool } from '@squoosh/lib';
import { cpus } from 'os';
const imagePool = new ImagePool(cpus().length);

// handle
import fs from 'fs/promises';
const file = await fs.readFile('./path/to/image.png');
const image = imagePool.ingestImage(file);

const preprocessOptions = {
   // 压缩参数:比如缩放图片
   resize: {
      width: 100,
      height: 50,
   }
};
await image.preprocess(preprocessOptions);
const encodeOptions = {
   mozjpeg: {}, // 默认压缩输出为jpeg格式
   jxl: {
      quality: 90, // 设置压缩质量
   },
};
const result = await image.encode(encodeOptions);

https://www.npmjs.com/package/@squoosh/lib