Node项目中如何使用imagesimageinfo库为图片批量添加水印?

更新于
2026-09-25 04:14:52
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计801个文字,预计阅读时间需要4分钟。

Node项目中如何使用images/imageinfo库为图片批量添加水印?

Node.js中如何给图片批量添加水印?

本文将介绍在Node.js项目中使用images+imageinfo库给图片批量添加水印的方法,希望对大家有所帮助!

Node.js给图片批量添加水印

环境准备

安装Node.js环境

安装images库

安装imageinfo库

bashnpm install imagesnpm install imageinfo

代码示例

javascriptconst fs=require('fs');const path=require('path');const images=require('images');const { ImageInfo }=require('imageinfo');

// 图片目录const imagePath='./images';// 水印图片路径const watermarkPath='./watermark.png';// 输出目录const outputPath='./output';

// 获取所有图片const files=fs.readdirSync(imagePath);

files.forEach(file=> { // 图片完整路径 const imageFilePath=path.join(imagePath, file); // 图片信息 const imageInfo=new ImageInfo(imageFilePath); // 读取图片 const image=images(imageFilePath);

// 添加水印 const watermark=images(watermarkPath); const width=imageInfo.width; const height=imageInfo.height; image.composite(watermark, width - watermark.width(), height - watermark.height());

// 保存图片 image.save(path.join(outputPath, file));});

以上代码将遍历指定目录下的所有图片,为每张图片添加水印,并保存到指定输出目录。

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

Nodejs给图片批量添加水印

环境准备

安装 images 库

npm install images

安装 imageinfo 库

npm install imageinfo

实现

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

含子文件也可实现

JS代码

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

Node项目中如何使用images/imageinfo库为图片批量添加水印?

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库给图片批量添加水印的详细内容,更多请关注自由互联其它相关文章!

本文共计801个文字,预计阅读时间需要4分钟。

Node项目中如何使用images/imageinfo库为图片批量添加水印?

Node.js中如何给图片批量添加水印?

本文将介绍在Node.js项目中使用images+imageinfo库给图片批量添加水印的方法,希望对大家有所帮助!

Node.js给图片批量添加水印

环境准备

安装Node.js环境

安装images库

安装imageinfo库

bashnpm install imagesnpm install imageinfo

代码示例

javascriptconst fs=require('fs');const path=require('path');const images=require('images');const { ImageInfo }=require('imageinfo');

// 图片目录const imagePath='./images';// 水印图片路径const watermarkPath='./watermark.png';// 输出目录const outputPath='./output';

// 获取所有图片const files=fs.readdirSync(imagePath);

files.forEach(file=> { // 图片完整路径 const imageFilePath=path.join(imagePath, file); // 图片信息 const imageInfo=new ImageInfo(imageFilePath); // 读取图片 const image=images(imageFilePath);

// 添加水印 const watermark=images(watermarkPath); const width=imageInfo.width; const height=imageInfo.height; image.composite(watermark, width - watermark.width(), height - watermark.height());

// 保存图片 image.save(path.join(outputPath, file));});

以上代码将遍历指定目录下的所有图片,为每张图片添加水印,并保存到指定输出目录。

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

Nodejs给图片批量添加水印

环境准备

安装 images 库

npm install images

安装 imageinfo 库

npm install imageinfo

实现

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

含子文件也可实现

JS代码

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

Node项目中如何使用images/imageinfo库为图片批量添加水印?

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库给图片批量添加水印的详细内容,更多请关注自由互联其它相关文章!