1. Node.js介绍
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,在服务器端运行JavaScript代码,Node.js的运行环境提供了一种事件驱动的架构,采用基于事件驱动的非阻塞I/O模型而成,并且Node.js采用了一种单线程的处理模型,Node.js可以方便的搭建高性能、高可扩展性的网络应用程序。
2. 图片压缩原理
图片的压缩通俗易懂的解释就是把一个大物体挤成一个小物体,而这种挤压并不会对物体的形状和结构造成任何破坏和影响,只会影响其分辨率、格式、清晰度等关键因素。
图片压缩通常实在编码压缩和有损压缩两种方式中实现的。其中编码压缩技术采用的是无损压缩方式,即通过寻找重复数据,简化图像信息或从图像中删除一些不影响图像质量的信息,来达到压缩的目的。而有损压缩方式依靠人眼的生理、心理特性及 S 链路特性来压缩。
3. 基于Node.js的图片压缩工具—image-min
3.1 image-min概述
image-min是一个基于Node.js的图片压缩工具,可以压缩包括JPEG、PNG、GIF、SVG等格式的图片,这个工具使用了一些优秀的图片压缩库,封装成了一套方便实用的框架。
3.2 安装image-min
安装image-min需要先安装Node.js
在命令行窗口输入以下命令:
npm install image-min
安装完成后,就可以在Node.js的代码中使用image-min工具了。
4. 基本使用方法
4.1 代码示例
使用image-min进行图片压缩的代码如下:
// 1. 引入image-min
const imagemin = require('imagemin');
// 2. 引入需要使用到的压缩插件
const imageminJpegtran = require('imagemin-jpegtran');
const imageminPngquant = require('imagemin-pngquant');
// 3. 开始压缩图片
imagemin(['images/*.{jpg,png}'], 'build/images', {
plugins: [
imageminJpegtran(),
imageminPngquant({
quality: [0.6, 0.8]
})
]
}).then(() => {
console.log('Images optimized');
});
4.2 代码说明
上述代码中,使用了image-min插件的三个步骤:
1. 引入image-min:
引入image-min模块,代码如下:
const imagemin = require('imagemin');
2. 引入需要使用到的压缩插件:
引入需要使用的图片格式的压缩插件,这里引入了两个插件:imagemin-jpegtran和imagemin-pngquant,分别面向JPEG和PNG两种格式的图片压缩。代码如下:
const imageminJpegtran = require('imagemin-jpegtran');
const imageminPngquant = require('imagemin-pngquant');
3. 开始压缩图片:
设置需要压缩的图片目录路径、压缩后图片存放的目标路径和各种压缩插件的参数,然后执行压缩操作。代码如下:
imagemin(['images/*.{jpg,png}'], 'build/images', {
plugins: [
imageminJpegtran(),
imageminPngquant({
quality: [0.6, 0.8]
})
]
}).then(() => {
console.log('Images optimized');
});
5. 总结
Image-min是一款非常优秀的图片压缩工具,使用image-min可以很轻松地完成对于各种格式的图片的压缩和优化,这减轻了Web开发中图片优化难题的任务,增加了网站性能的表现。