2017-07-18 12 views
0

私は現在socket.ioでクライアントからサーバーにbase64イメージを転送しています。サーバー上で、その画像を自分のキャンバスにレンダリングしたいのですが、base64イメージをキャンバスにレンダリングします。Node.jsノードキャンバスshow 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の一部であり、ノードランタイムには存在しません。

いくつかのDOM APIをエミュレートできるモジュールをインポートする必要があります。

+0

あなたは1つを知っていますか?ただイメージ機能が必要です... – nameless

+0

私は自分で使う必要はありませんでしたが、[jsdom](https://github.com/tmpvar/jsdom)が助けてくれるかもしれません – Aron

+0

は簡単には見えません...私画像に変換せずに直接base64でキャンバスを作成する方法があるのでしょうか? – nameless

関連する問題