如何为图像nodejs添加水印

时间:2017-02-10 11:46:48

标签: javascript node.js express loopbackjs

如何在nodejs中为图像添加水印。我正在使用环回框架,我想为每个上传的图像添加水印,我尝试了几个图像处理模块,但无法实现水印。

我尝试了带有代码的图像水印库:

watermark.embedWatermark('./server/storage/images/img_hkd.jpg', { 'text': 'sample watermark' });

但我收到此错误:错误:spawn识别ENOENT

2 个答案:

答案 0 :(得分:0)

只需使用一个包,我就没有任何问题使用虚构。

//Install
npm install imaginary --save

//Import 
var fs = require('fs')
var imaginary = require('imaginary')
var serverUrl = 'localhost:8080'

imaginary('myImage.jpg')
  .server(serverUrl)
  .watermark({ text: 'copyright' })
  .on('error', function (err) {
    console.error('Cannot resize the image:', err)
  })
  .pipe(fs.createWriteStream('markedImage.jpg'))

https://github.com/h2non/node-imaginary

答案 1 :(得分:0)

使用watermark模块代替jimp。它对我有用。

let imgActive = 'active/image.jpg';
Jimp.read('raw/originalimage.png').then(tpl =>(tpl.clone().write(imgActive))).then(() => (Jimp.read(imgActive))).then(tpl=>(Jimp.read('raw/logo.png').then(logoTpl => {logoTpl.opacity(0.2);return tpl.composite(logoTpl,512,512,[Jimp.BLEND_DESTINATION_OVER]);}))).then(tpl=>(tpl.write('raw/watermark.png')))