在html5画布上绘制图像

时间:2013-06-27 02:27:04

标签: html5 canvas

我对js很新,并且只做了一点html但是这看起来很简单:我只是想把画面画到画布上!如果将新图像添加到我的主div(gameObjectElement),它可以正常工作,但是当试图在画布上绘制时它不会显示。填充文本显示在画布上,所以我相信上下文的内容是正确的。

        var marthPic = new Image();
        marthPic.src ='images/marth.jpg';

        $(gameObjectElement).append(marthPic);

        var c=document.getElementById("myCanvas");
        var ctx=c.getContext("2d");
        ctx.font="30px Arial";
        ctx.fillText("Hello World",300,50);
        ctx.drawImage(marthPic, 100, 100);

有什么想法吗?

感谢

2 个答案:

答案 0 :(得分:4)

在将图像添加到画布之前,您需要等待实际加载图像。您可以使用onload处理程序执行此操作:

var marthPic = new Image();
marthPic.src ='images/marth.jpg';
$(gameObjectElement).append(marthPic);

marthPic.onload = function () {
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    ctx.font="30px Arial";
    ctx.fillText("Hello World",300,50);
    ctx.drawImage(marthPic, 100, 100);  
};

答案 1 :(得分:1)

编辑,因为我是一个菜鸟(幸运的缓存命中):

    <script>
     var c=document.getElementById("myCanvas");
     var ctx=c.getContext("2d");

     var marthPic = new Image();
     marthPic.src = 'images/marth.jpg';
     marthPic.onload = function() {
        ctx.drawImage(marthPic,10,10);
     };

 </script>