很多时候,为了保护版权、保护原创,或是宣传的需要,我们需要给图片加水印的。

Node.JS中给图片加水印是很简单的,通过一个三方库:images可以很方便的实现。

本示例有三个文件,一个程序文件、一张图片、一个水印图片:


Node.JS实战57:给图片加水印

图片可以是jpg或png,水印需要是PNG,因为水印可能要做个圆角或其它部分可能需要透明的形状。

Node.JS实战57:给图片加水印

实现代码:


var images = require('images');

//水印图片
var watermarkImg = images('water_logo.png');

//等待加水印的图片
var sourceImg = images("test.jpg");

// 比如放置在右下角,先获取原图的尺寸和水印图片尺寸
var sWidth = sourceImg.width();
var sHeight = sourceImg.height();
var wmWidth = watermarkImg.width();
var wmHeight = watermarkImg.height();

//设置绘制的坐标位置,右下角距离 5px
images(sourceImg).draw(watermarkImgsWidth - wmWidth - 5sHeight - wmHeight - 5)

//保存
.save("test2.jpg");

代码很简单,即准备好原图,将水印和原图合并到一起,并保存。
node test

运行,即成生成基于test.jpg并带有水印的图片test2.jpg。

看效果:

Node.JS实战57:给图片加水印

用nodejs给图片加水印,就是这么简单。