首页 > 解决方案 > ReferenceError:使用 Watermarkjs 时未定义图像

问题描述

我给出了文件存在的特定路径,但在使用 watermarkjs 时出错

watermark(['../uploads/file_1546929350511_Name.PNG']).image(text.center('watermrk.js', '48px Josefin Slab', '#fff', 0.5)).then(function (img) { document.getElementById('center').appendChild(img); });

错误是

C:\Users\Admin\Desktop\Nss testing\test\node_modules\watermarkjs\dist\watermark.js:351
      var img = new Image();
                ^ReferenceError: Image is not defined
at loadUrl (C:\Users\Admin\Desktop\Nss testing\test\node_modules\watermarkjs\dist\watermark.js:351:14)
at load (C:\Users\Admin\Desktop\Nss testing\test\node_modules\watermarkjs\dist\watermark.js:337:20)
at watermark (C:\Users\Admin\Desktop\Nss testing\test\node_modules\watermarkjs\dist\watermark.js:164:42)
at C:\Users\Admin\Desktop\Nss testing\test\controller\updateController.js:60:7
at Array.<anonymous> (C:\Users\Admin\Desktop\Nss testing\test\node_modules\multer\lib\make-middleware.js:53:37)
at listener (C:\Users\Admin\Desktop\Nss testing\test\node_modules\on-finished\index.js:169:15)
at onFinish (C:\Users\Admin\Desktop\Nss testing\test\node_modules\on-finished\index.js:100:5)
at callback (C:\Users\Admin\Desktop\Nss testing\test\node_modules\ee-first\index.js:55:10)
at IncomingMessage.onevent (C:\Users\Admin\Desktop\Nss testing\test\node_modules\ee-first\index.js:93:5)
at emitNone (events.js:106:13)
at IncomingMessage.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)

标签: javascriptnode.jsexpresswatermark

解决方案


看起来应该在浏览器中使用 WatermarkJS 模块。

从您的问题主题(express,node.js)看来,您正在尝试在服务器端使用它。

是 window 对象上的Image一个全局对象,并创建一个新图像以在 DOM 中使用或预加载图像资源。这就是错误说的原因ReferenceError: Image is not defined

我建议您查看可在服务器端使用的ImageMagick模块。


推荐阅读