File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ title : 纯前端实现超大图片超快稳定压缩
3+ date : 2024-08-24T14:27:32Z
4+ slug : post-13
5+ author : chaseFunny:https://github.com/chaseFunny
6+ tags : ["图片压缩"]
7+ ---
8+
9+ ## 背景
10+
11+ 先给大家看一下压缩效果,是不是非常好,下面看看如何实现吧!
12+
13+ ![ image-20240824221714151] ( https://blog-1304565468.cos.ap-shanghai.myqcloud.com/work/image-20240824221714151.png )
14+
15+ 在最近开发中,因为我们的网站用户可能上传很大的图片,那如果直接提示用户上传失败,或者禁止上传大图,可能对用户不太友好,用户还需要去压缩图片然后再回来上传,增加了用户使用系统难度,于是就想让后端同学在服务端进行图片压缩,但是后端同学说压缩图片很消耗系统资源,不如使用第三方付费服务,我就想能不能在客户端实现图片压缩呢?毕竟客户端压缩有很多优势呢!
16+
17+ ## 客户端压缩为什么比服务端压缩更有优势?
18+
19+ 1 ) 减轻服务器负担:压缩服务在客户端实现,这样能大大减少我们服务器的压力,毕竟用户的资源消耗不要钱,我们服务器都是真金白银
20+
21+ 2)提升用户体验:我们不需要把很大的资源上传到服务器,而是传给服务器一个很小的资源,对于网络差的用户非常友好
22+
23+ 3)实时查看压缩效果:如果有需要看压缩效果的场景,客户端压缩用户很快能看到压缩效果,但是服务端就需要先把大资源发送到服务端,然后再进行压缩处理返回小资源,然后客户端才展示,用户可能都睡着了。。
24+
25+ ## 实现
26+
27+ 不知要大家平时是否有压缩图片的需求,大家会使用什么呢?我可以推荐两个在线压缩图片服务,非常好用:
28+
29+ - https://tinify.cn/
30+ - https://squoosh.app/
31+
32+ 那第二个是谷歌开源的压缩服务,是在客户端实现,都是在本地操作,安全快捷,接下来我的实现也是依赖于它。
33+
34+ 谷歌的开源代码是:https://github.com/GoogleChromeLabs/squoosh
35+
36+ 有大神进行了封装,让我们可以在前端很方便使用:https://github.com/ElonXun/squoosh-compress
37+
38+ 然后,我们就安装这个包,然后按照文档进行压缩即可,我这里写了一个使用的示例代码,可供大家参考:
39+
40+ https://github.com/chaseFunny/image-compression
41+
42+ ## END
43+
44+ 不知道大家是否有更好的图片压缩实现方式,大家觉得图片压缩在客户端还是服务器实现更好点呢?
45+
46+
47+
48+ ---
49+ 此文自动发布于:<a href = " https://github.com/coderPerseus/blog/issues/13" target = " _blank" >github issues</a >
You can’t perform that action at this time.
0 commit comments