Node.js批量給圖片加水印的方法
一、準(zhǔn)備工作:
首先,你要閱讀完這篇文章:http://www.dhdzp.com/article/97391.htm。
然后,我們安裝node.js的一個(gè)模塊:imageinfo。
npm install imageinfo
二、直接上DEMO:
步驟如下:
step1:文件夾結(jié)構(gòu)

step2:JS代碼
//引用文件系統(tǒng)模塊
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 = {};//定義一個(gè)對(duì)象存放文件的路徑和名字
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)
// 設(shè)置繪制的坐標(biāo)位置,右下角距離 40px
.draw(watermarkImg, sWidth - wmWidth - 40, sHeight - wmHeight - 40)
// 保存格式會(huì)自動(dòng)識(shí)別
.save('./saveImg/'+ sourceImgName+'');
}
step3:運(yùn)行node命令后,文件夾結(jié)構(gòu)如下圖

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

以上所述是小編給大家介紹的Node.js批量給圖片加水印的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- node.js實(shí)現(xiàn)為PDF添加水印的示例代碼
- 使用Node.js給圖片加水印的方法
- Node.js中Express框架使用axios同步請(qǐng)求(async+await)實(shí)現(xiàn)方法
- nodejs+axios爬取html出現(xiàn)中文亂碼并解決示例
- node+axios實(shí)現(xiàn)服務(wù)端文件上傳示例
- 利用node+koa+axios實(shí)現(xiàn)圖片上傳和回顯功能
- Node.js 使用axios讀寫influxDB的方法示例
- JavaScript利用油猴腳本實(shí)現(xiàn)去水印功能
- 使用python實(shí)現(xiàn)簡(jiǎn)單去水印功能
- node.js去水印方法實(shí)例分析
相關(guān)文章
nodejs中使用worker_threads來(lái)創(chuàng)建新的線程的方法
這篇文章主要介紹了nodejs中使用worker_threads來(lái)創(chuàng)建新的線程的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Node.js與MySQL交互操作及其注意事項(xiàng)
這篇文章給大家主要介紹了Node.js與MySQL交互操作及其注意事項(xiàng),非常的詳細(xì),有相同需求的小伙伴可以參考下2016-10-10
node.js中實(shí)現(xiàn)kindEditor圖片上傳功能的方法教程
最近在做一個(gè)類似于論壇的系統(tǒng),帖子需要進(jìn)行圖文并茂的顯示,所以用到了富文本編輯器:kindeditor,下面這篇文章主要給大家介紹了在node.js中實(shí)現(xiàn)kindEditor圖片上傳功能的方法教程,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-04-04
如何解決安裝websocket還是報(bào)錯(cuò)Cannot find module'ws&apos
這篇文章主要介紹了如何解決安裝websocket還是報(bào)Cannot find module'ws'問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
async/await與promise(nodejs中的異步操作問(wèn)題)
這篇文章主要介紹了async/await與promise(nodejs中的異步操作問(wèn)題),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03

