首页 > 编程 > JavaScript > 正文

Node.js批量给图片加水印的方法

2019-11-19 18:58:14
字体:
来源:转载
供稿:网友

一、准备工作:

首先,你要阅读完这篇文章://www.VeVB.COm/article/97391.htm

然后,我们安装node.js的一个模块:imageinfo。

npm install imageinfo

二、直接上DEMO:

步骤如下:

step1:文件夹结构

step2:JS代码

//引用文件系统模块var fs = require("fs");//引用imageinfo模块var imageInfo = require("imageinfo");//引用images模块var images = require('images');var watermarkImg = images('water_logo.png');function readFileList(path, filesList) {var files = fs.readdirSync(path);files.forEach(function (itm, index) {var stat = fs.statSync(path + itm);if (stat.isDirectory()) {//递归读取文件readFileList(path + itm + "/", filesList)} else {var obj = {};//定义一个对象存放文件的路径和名字obj.path = path;//路径obj.filename = itm//名字filesList.push(obj);}})}var getFiles = {//获取文件夹下的所有文件getFileList: function (path) {var filesList = [];readFileList(path, filesList);return filesList;},//获取文件夹下的所有图片getImageFiles: function (path) {var imageList = [];this.getFileList(path).forEach((item) => {var ms = imageInfo(fs.readFileSync(item.path + item.filename));ms.mimeType && (imageList.push(item.filename))});return imageList;}};//获取文件夹下的所有图片var photos = getFiles.getImageFiles("./public/");for (var i = 0; i < photos.length; i++) {var sourceImg = images('./public/'+photos[i]);var sourceImgName = photos[i];var sWidth = sourceImg.width();var sHeight = sourceImg.height();var wmWidth = watermarkImg.width();var wmHeight = watermarkImg.height();images(sourceImg)// 设置绘制的坐标位置,右下角距离 40px.draw(watermarkImg, sWidth - wmWidth - 40, sHeight - wmHeight - 40)// 保存格式会自动识别.save('./saveImg/'+ sourceImgName+'');}

step3:运行node命令后,文件夹结构如下图

step4:查看批量加水印的图片

以上所述是小编给大家介绍的Node.js批量给图片加水印的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表