很多时候,为了保护版权、保护原创,或是宣传的需要,我们需要给图片加水印的。
Node.JS中给图片加水印是很简单的,通过一个三方库:images可以很方便的实现。
本示例有三个文件,一个程序文件、一张图片、一个水印图片:
图片可以是jpg或png,水印需要是PNG,因为水印可能要做个圆角或其它部分可能需要透明的形状。
实现代码:
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(watermarkImg, sWidth - wmWidth - 5, sHeight - wmHeight - 5)
//保存
.save("test2.jpg");
代码很简单,即准备好原图,将水印和原图合并到一起,并保存。
node test
运行,即成生成基于test.jpg并带有水印的图片test2.jpg。
看效果:
用nodejs给图片加水印,就是这么简单。