前言
为何要使用tinyjpg?
作为前端开发者中的一员,想必大家已经尝试过使用 Npm 上的图片压缩库,
比如imagemin或者其他的压缩库,
甚至你尝试过直接使用canvas
进行图片压缩.不管你用什么库,区别在于压缩算法.
本人经过一系列的对比(在线压缩网站与 Npm 库)最终产生的佼佼者是tinyjpg俗称熊猫压缩
.
熊猫压缩算法是迄今为止能找到的最好的(没有之一)
准备工作
- nodejs 环境搭建, 作为前端开发者这里就略过了
- 在这里获取熊猫压缩免费 API
熊猫压缩是一个在线压缩网站.
但是有部分限制,图片大小必须要小于 5M,批量处理不能超过 20 张.
但其开发者 API 并没有这些限制 - 安装 npm 包
tinify
1
npm install tinify
直接上代码
1 | // 引用glob的库的目的是为了快速获取images目录下的所有图片 |
总结
代码还是较为简单的, 你可以把他扩展到gulp或者webpack上.
注意的是 免费的API调取每月只能压缩500张图, 但是对于一般的小公司完全够用了,
即使你不够用, 也可以使用多个免费API切换调用
另外还需要注意的就是 压缩图片时需要联网. 压缩过程是在 熊猫压缩服务器上进行.
这样保证了压缩算法不泄漏的同时还能减少本地CPU资源的耗损