nodeJS将图像绘制到画布中(不工作)

时间:2014-10-04 17:25:14

标签: javascript node.js angularjs canvas express

我尝试使用后端的nodeJS和前端的AngularJS制作游戏,但我遇到了一些问题。 我使用express来配置NodeJS中的路由和AngularJS中的ngRoute。每个页面都有一个视图和一个控制器。 我有一个页面,其视图中只有一个“画布”和一个管理画布的控制器(这段代码是一个例子,它不是我的最终代码):

gameView.html:

<canvas id="gameCanvas" width="500" height="500"></canvas>

gameCtrl.js:

app.controller('gameCtrl', function($scope) {
    var canvas = document.getElementById("gameCanvas");
    var ctx = canvas.getContext("2d");
    var img = new Image();
    img.onload = function() {
        ctx.drawImage(img, 10, 10);
    }
    img.src = 'image.png';
});

问题是在谷歌浏览器中,只有NodeJS(我已经尝试过使用Apache),在刷新X之后,drawImage不起作用。

我已经禁用了Chrome的GPU加速或使用了“document.createElement(”img“)”。 但没什么用。

在NodeJS中,我已经定义了一个公共文件夹:

app.use(express.static(__dirname + '/public'));

图像,html和js文件位于公共文件夹中。 所以,我不知道为什么它不起作用。

如果你有任何想法,谢谢你给我一个反馈。

(对不起我的英语,我是法国人)

编辑: 我在Cloud9网站上创建了一个工作区。

测试:https://testcanvas-c9-lludol.c9.io/

要查看代码:https://ide.c9.io/lludol/testcanvas

就像你看到的那样,它有效! 我甚至试图在这个工作区重现路线系统。

那么,您认为这是我的服务器有问题吗?

或者您认为我的nodeJS配置存在问题吗?

我找到了解决方案: 我可以存储图像的base64编码,而不是使用“new Image()”创建图像,而是直接用“drawImage”显示它。

0 个答案:

没有答案