这是我参与2022首次更文挑战的第8天,活动详情查看:2022首次更文挑战
从压缩图片开始
最近呢,公司的项目逐渐稳定,除了下班时间学习flutter以外,也能在工作时间不忙的时候抽空学习一下node了,唉,本来是很早就在说的,结果拖啊拖啊就到今年了。
这里也是讲一讲我学习的,以及我的理解。应该也算是我零基础入门node、cli开发的路线记录了。
自己之前也试着找过一些,但是看着有点头大,所以烦了朋友一阵,给推荐了一些入门的文章,今天这里就从压缩图片开始。
从压缩图片开始还是聊,还是因为公司这边的租房项目优区生活
内置了一个聊天的功能,以及本身的发布房源
允许添加房源图片, 发布求租功能、聊天功能支持语音,所以会有很多图片或语音的聊天记录,录音压缩优化以后再说。
图片压缩则先搞一步,NodeJS中进行图片压缩,可以选择三方模块:Images。Images是一个Node.js轻量级跨平台图像编解码库,不过事先爆料,这玩意儿只能输出jpg图片,所以是有缺陷的。
fs
是node默认自带的库,无需在install
了,而images
是第三方的模块,所以需要先手动引入下。
npm install images
目录结构如下
-root
|-imgs
|--|-1.jpg
|-index.js
|-package.json
|-node_modules
var images = require("images");
var fs = require("fs");
var path = "imgs";
function explorer(path) {
fs.readdir(path, function (err, files) {
//err 为错误 , files 文件名列表包含文件夹与文件
if (err) {
console.log('error:\n' + err);
return;
}
files.forEach(function (file) {
fs.stat(path + '/' + file, function (err, stat) {
if (err) { console.log(err); return; }
if (stat.isDirectory()) {
// 如果是文件夹遍历
explorer(path + '/' + file);
} else {
// 读出所有的文件
console.log('文件名:' + path + '/' + file);
var name = path + '/' + file;
var outName = path + '/' + 'another_' + file
images(name).save(outName, {
quality: 50 //保存图片到文件,图片质量为50
});
}
});
});
});
}
explorer(path);
总结
可以看到图片在压缩之后没有什么明显的区别,(模糊是图片本身的原因)
,如果是需要调整尺寸的,在库当中也有对应的方法。