Node项目中用images+imageinfo库给图片批量添加水印

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

Node项目中用images+imageinfo库给图片批量添加水印

Nodejs中怎么给图片批量添加水印?下面本篇文章给大家介绍一下Node项目中用images+imageinfo库给图片批量添加水印的方法,希望对大家有所帮助!

Nodejs给图片批量添加水印

环境准备

安装 images 库

npm install images
登录后复制

安装 imageinfo 库

npm install imageinfo
登录后复制

实现

本例 addimageinfo.js 与 marklogo.png 、imagest文件夹、node_modules 文件夹 在同一目录下。

含子文件也可实现

JS代码

若直接使用需修改一下信息

var logomarkimg = images('./marklogo.png');//水印位置var rmimgpath = "./imagest/img/";//添加图片文件加位置var mark = "logo_";//另存图片前缀,若为""则替换原图片
登录后复制

完整代码 addimageinfo.js

//引用文件系统模块var fs = require("fs");//引用imageinfo模块var imageInfo = require("imageinfo");//引用images模块var images = require('images');var logomarkimg = images('./marklogo.png');//水印位置var rmimgpath = "./imagest/img/";//添加图片文件加位置var mark = "logo_";//另存图片前缀,若为""则替换原图片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))        });        return imageList;    }};//获取文件夹下的所有图片var photos = getFiles.getImageFiles(rmimgpath);for (var i = 0; i < photos.length; i++) {    var sourceImgpath = photos[i].path;    var sourceImgname = photos[i].filename;    var sourceImg = images(sourceImgpath + sourceImgname);    var sWidth = sourceImg.width();    var sHeight = sourceImg.height();    var wmWidth = logomarkimg.width();    var wmHeight = logomarkimg.height();    images(sourceImg)        // 设置绘制的坐标位置,右下角距离 10px        .draw(logomarkimg, sWidth - wmWidth - 10, sHeight - wmHeight - 10)        // 保存格式会自动识别        .save(sourceImgpath + mark + sourceImgname + '');}
登录后复制

运行

在目录下,运行node命令

node ./addimageinfo.js
登录后复制

查看效果

更多node相关知识,请访问:nodejs 教程!

以上就是Node项目中用images+imageinfo库给图片批量添加水印的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:html有什么用
下一篇:Vue中如何使用v-text指令实现文本内容的渲染

发表评论

关闭广告
关闭广告