2

我想从网上画一张图片,所以我有以下 html5 代码,这是 W3C Shool 的示例,但是当我在 Chrome 中加载 html 页面时,显示了图像。

<!DOCTYPE html>
<html>
    <body>
        <canvas id="myCanvas" width="500" height="500" style="border:1px solid #c3c3c3;">
            Your browser does not support the canvas element.
        </canvas>

        <script type="text/javascript">
            var c=document.getElementById("myCanvas");
            var cxt=c.getContext("2d");
            var img=new Image();
            img.src='http://www.w3school.com.cn/i/ct_html5_canvas_image.gif';
            cxt.drawImage(img, 0, 0);
        </script>
    </body>
</html>

图片来自w3school,可以在我的Chrome中查看,我的Chrome是最新版本,所以不知道问题出在哪里,我什至尝试将图片下载到我的本地机器并放在同一目录下在上面的 html 页面中,将代码更改为 img.src='flower.gif',但它仍然无法正常工作。

4

1 回答 1

2

问题是您试图在图像加载之前绘制图像。尝试这样的事情:

    <canvas id="myCanvas" width="500" height="500" style="border:1px solid #c3c3c3;">
        Your browser does not support the canvas element.
    </canvas>

    <script type="text/javascript">

        var c = document.getElementById("myCanvas");
        var cxt = c.getContext("2d");

        var img=new Image();
        img.src='http://www.w3school.com.cn/i/ct_html5_canvas_image.gif';

        img.onload = draw;

        function draw(){               
            cxt.drawImage(img, 0, 0);            
        }


    </script>
于 2012-11-22T09:19:56.003 回答