2017-07-18 124 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