怎么利用Node进行图片压缩

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开发中图片优化难题的任务,增加了网站性能的表现。