最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js批量給圖片加水印的方法

 更新時間:2016年11月15日 16:33:33   作者:敲代碼的怪蜀黍  
這篇文章主要介紹了Node.js批量給圖片加水印的方法,本文分步驟給大家介紹的非常詳細,需要的朋友可以參考下

一、準備工作:

首先,你要閱讀完這篇文章:http://m.fzitv.net/article/97391.htm。

然后,我們安裝node.js的一個模塊:imageinfo。

npm install imageinfo

二、直接上DEMO:

步驟如下:

step1:文件夾結(jié)構

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 = {};//定義一個對象存放文件的路徑和名字
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命令后,文件夾結(jié)構如下圖

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

以上所述是小編給大家介紹的Node.js批量給圖片加水印的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • Node.js 多線程完全指南總結(jié)

    Node.js 多線程完全指南總結(jié)

    這篇文章主要介紹了Node.js 多線程完全指南總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • nodejs中使用worker_threads來創(chuàng)建新的線程的方法

    nodejs中使用worker_threads來創(chuàng)建新的線程的方法

    這篇文章主要介紹了nodejs中使用worker_threads來創(chuàng)建新的線程的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Node.js與MySQL交互操作及其注意事項

    Node.js與MySQL交互操作及其注意事項

    這篇文章給大家主要介紹了Node.js與MySQL交互操作及其注意事項,非常的詳細,有相同需求的小伙伴可以參考下
    2016-10-10
  • node.js中實現(xiàn)kindEditor圖片上傳功能的方法教程

    node.js中實現(xiàn)kindEditor圖片上傳功能的方法教程

    最近在做一個類似于論壇的系統(tǒng),帖子需要進行圖文并茂的顯示,所以用到了富文本編輯器:kindeditor,下面這篇文章主要給大家介紹了在node.js中實現(xiàn)kindEditor圖片上傳功能的方法教程,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-04-04
  • Node常見的三種安全防范手段詳解

    Node常見的三種安全防范手段詳解

    這篇文章主要為大家介紹了Node常見的三種安全防范手段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 如何解決安裝websocket還是報錯Cannot find module'ws'問題

    如何解決安裝websocket還是報錯Cannot find module'ws&apos

    這篇文章主要介紹了如何解決安裝websocket還是報Cannot find module'ws'問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Node.js入門筆記?之a(chǎn)sync模塊

    Node.js入門筆記?之a(chǎn)sync模塊

    這篇文章主要介紹了Node.js入門筆記?之a(chǎn)sync模塊,async是一個異步處理模塊,主要有三個方式:串行無關聯(lián)、并行無關聯(lián)?、串行有關聯(lián),文章圍繞主題展開更多的相關內(nèi)容,需要的小伙伴可以參考一下
    2022-06-06
  • async/await與promise(nodejs中的異步操作問題)

    async/await與promise(nodejs中的異步操作問題)

    這篇文章主要介紹了async/await與promise(nodejs中的異步操作問題),非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • Node.js進程管理之Process模塊詳解

    Node.js進程管理之Process模塊詳解

    本文詳細講解了Node.js進程管理之Process模塊,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 快速掌握Node.js模塊封裝及使用

    快速掌握Node.js模塊封裝及使用

    這篇文章主要為大家詳細介紹了Node.js模塊封裝及使用,幫助大家快速掌握Node.js模塊封裝及使用,感興趣的小伙伴們可以參考一下
    2016-03-03

最新評論

镇巴县| 南京市| 松潘县| 墨竹工卡县| 涪陵区| 平舆县| 乌审旗| 威远县| 台南县| 铁力市| 嘉兴市| 镇雄县| 朝阳市| 石台县| 衡阳市| 商水县| 潢川县| 南部县| 伊川县| 广丰县| 泸水县| 定州市| 温宿县| 改则县| 布尔津县| 香港 | 双桥区| 平和县| 普兰店市| 林西县| 扶余县| 视频| 铜梁县| 黑龙江省| 兴海县| 黄石市| 侯马市| 平远县| 天峻县| 高邑县| 克东县|