前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >优化网站性能的终极图片压缩神器!

优化网站性能的终极图片压缩神器!

作者头像
程序员老鱼
发布2023-09-07 08:52:42
3790
发布2023-09-07 08:52:42
举报
文章被收录于专栏:前端实验室

大家在日常生活中经常会遇到一个问题:图片太大了! 有些时候分享和上传时,速度总是很慢~

网上压缩图片的工具比比皆是,但作为开发者,在开发的时候遇到这种问题怎么办呢?

为了解决这个问题,今天就向大家介绍一个开源的工具:Squoosh

简介

Squoosh是一款由Google开发的在线图片压缩工具,它的目标非常简单:通过减小图片文件的大小,同时保持尽可能高的图片质量,使得图片更易于传输和加载。

它是谷歌出品的免费开源图片压缩工具,图片大小减少90%!既有在线网页工具,又支持 API 开发调用.

在线使用 Squososh 来压缩图片

今天介绍的 Squoosh 使用起来非常简单。在浏览器中打开 Squoosh 工具的网页(https://squoosh.app/)即可使用。

点击选择图片或直接把图片拖进网页里,默认就会生成压缩预览,拖动中间的分隔线可以对比压缩前后的效果。

Squoosh为你提供了多种压缩算法和设置选项,包括JPEG、PNG、WebP等格式的调整,你可以根据具体需求进行选择。

不要忘了打开Advanced settings高级选项(如上图右侧所示)。里面还有更多配置。

调整完图片后,就可以直接下载图片到本地啦~

开发集成图片压缩功能

谷歌开发并且开源这款工具的初衷,是希望更多开发者使用它来降低图片的大小的同时还保证了图片质量,使用户获得更快的上网体验

下面介绍使用 api 方式开发集成的方法:

安装 Squoosh

代码语言:javascript
复制
$ npm install @squoosh/lib

在开发项目中引入和初始化

代码语言:javascript
复制
import { ImagePool } from '@squoosh/lib';
import { cpus } from 'os';
const imagePool = new ImagePool(cpus().length);

压缩图片

代码语言:javascript
复制
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);

Squoosh 还支持通过 node.js 在后端使用,更全的 api 调用可查阅文末的 github 代码仓库目录。

其他

Squoosh 作为一款谷歌出品的免费开源的在线图片压缩工具,不仅完全免费,而且所用代码也完全开源,可谓是大厂的良心之作。

对国内来说,有点体验不好的地方就是:在线工具和github上的信息都是纯英文的。对我们开发者稍有点压力!

但这“炫技”的功能太强大,大家也一起来尝试一下吧,让你的图片加载更快、存储更省空间!

Github地址:https://github.com/GoogleChromeLabs/squoosh

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 在线使用 Squososh 来压缩图片
  • 开发集成图片压缩功能
  • 其他
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档