在node.js中使用图像水印时出错

时间:2019-05-29 04:52:03

标签: node.js imagemagick watermark

我正在使用image-watermark在服务器端node.js上的文件中添加水印,这会产生错误。

我尝试安装模块image-watermarkimagemagick和其他依赖项。起初,我遇到了类似于this的问题。但是,通过在我的系统中安装 ImageMagick 可以解决此问题,现在可以从this答案中解决该问题。

现在,我在以下代码中遇到错误:

const watermark = require('image-watermark');
const imagePath = path.resolve(__dirname,'./relative/path/to/image');
watermark.embedWatermarkWithCb(imagePath, { 'text': 'sample watermark' }, 
function (err) {
    if (!err)
      console.log('Succefully embeded watermark');
    else {
      //I am getting error here.
      console.log(err);
    }
});

图像文件应带有水印。但是,相反,我收到此错误:

{ Error: Command failed:
    at ChildProcess.<anonymous>(...\node_modules\imagemagick\imagemagick.js:88:15)
    at emitTwo (events.js:131:20)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit 
(internal/child_process.js:209:5) timedOut: false, killed: false, code: 1, 
signal: null }

我使用了this答案来找出错误的根本原因。没有这个,我只会遇到Error: spawn ENOENT错误。

1 个答案:

答案 0 :(得分:1)

我为您准备了一个基本示例:

download the code here

先决条件:

install imagemagick in SO
install ghostscript in SO (for pdf files)

例如对于Mac:

brew install imagemagick
brew install ghostscript (for pdf files)

步骤如下:

- You must enter the folder ./stackoverflow/56353310/

- npm install

- node index.js

输出必须是这样的:

enter image description here

任何问题,请让我知道。