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

Error while using image-watermark in node.js

我正在使用 image-watermark 为服务器端的文件添加水印 node.js,但它产生了一个错误。

我尝试安装模块 image-watermarkimagemagick 和其他依赖项。起初,我遇到了类似于 this. But, this problem was resolved by installing ImageMagick into my system and now that is resolved from 答案的问题。

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

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 错误。

我为你准备了一个基本的例子:

download the code here

Pre-requisite:

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 ./Whosebug/56353310/

- npm install

- node index.js

输出必须是这样的:

有任何问题请告诉我。