【问题标题】:Node.js node canvas show base64 imageNode.js 节点画布显示 base64 图像
【发布时间】:2017-12-23 01:29:26
【问题描述】:

我目前正在使用socket.iobase64 图像从客户端传输到我的服务器。在服务器上,我想将 base64 图像渲染到我的画布中。

代码是:

function newSlide(slideImage){
  socket.broadcast.emit('newSlide', slideImage);
  var img = new Image;
  img.src = slideImage;
  ctx.drawImage(img, 0, 0);
}

使用该代码,在客户端一切正常,我可以将 base64 图像加载到普通画布中,但在我的服务器上 server.js(此代码所在的位置),它不工作,我收到一个错误在new Image 行说Image is not defined,当尝试不创建图像并只输入base64 字符串时,它表示图像或画布除外。

图像创建有什么问题,为什么它不起作用?我该怎么做才能让它发挥作用?

【问题讨论】:

  • 您无法在服务器上显示图像,您需要在客户端显示它..您可能只想将图像数据发送到客户端,让客户端接收并显示它。
  • @LiamMacDonald 但我不知何故需要它在服务器端......在它在节点画布中之后它会继续,所以我需要它

标签: javascript node.js image canvas node-canvas


【解决方案1】:

应该是new Image(),而不是new Image

【讨论】:

    【解决方案2】:

    Image 是 DOM API 的一部分,因此在 Node 运行时中不存在。

    为了做你想做的事,你必须导入一个允许你模拟一些 DOM API 的模块。

    【讨论】:

    • 我自己从来不需要使用一个,但jsdom 或许可以提供帮助
    • 看起来没那么容易...我想知道是否有办法直接使用 base64 创建画布而不将其转换为图像?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2014-02-22
    • 2016-10-16
    • 2014-08-16
    • 2014-12-16
    • 1970-01-01
    相关资源
    最近更新 更多