2017-07-18 112 views
0

我目前正在将一个base64图像从客户端传输到我的服务器socket.io。在服务器上,我想将该base64图像渲染到我的画布上。Node.js节点画布显示base64图像

的代码是:

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

与该代码,客户端一切正常,我可以以base64图像加载到一个正常的画布上,但在server.js我的服务器上(如果这个代码)它不工作,我得到一个错误说Image is not definednew Image行,当尝试没有图像创建,只是在base64字符串,它说图像或画布除外。

图像创建有什么问题,为什么它不起作用?我能做些什么来使它工作?

+0

您不能在服务器上显示图像,您需要在客户端显示它。您可能只想将图像数据发送到客户端,让客户端接收并显示它。 –

+0

@LiamMacDonald,但我不知道需要它在服务器端...它在节点画布后它继续,所以我需要它在那里 – nameless

回答

0

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

要做你想要的东西,你将不得不导入一个允许你模拟一些DOM API的模块。

+0

你知道吗?只需要图像功能基本上... – nameless

+0

我从来没有需要使用一个自己,但[jsdom](https://github.com/tmpvar/jsdom)可能能够帮助 – Aron

+0

看起来并不那么容易...我想知道是否有一种方法可以创建一个直接使用base64而不将其转换为图像的画布? – nameless