【问题标题】:Draw Image on canvas on button click not working在按钮单击时在画布上绘制图像不起作用
【发布时间】:2015-09-19 20:42:32
【问题描述】:

我正在尝试运行此代码,但单击时没有任何反应。

我认为主要问题是图像加载,因为当我尝试 绘制从它工作的标签加载的图像。

<html>
  <body>
    <canvas id="myCanvas" width="445" height="312"
      style="border:1px solid #d3d3d3;">
      Your browser does not support the HTML5 canvas tag.
    </canvas>
    <p><button onclick="myCanvas()">Try it</button></p>
    <script>
      function myCanvas() {
        var c = document.getElementById("myCanvas");
        var ctx = c.getContext("2d");
        var img = new Image();
        img.src = "~/Images/my-meme.jpg";

        ctx.drawImage(img, 0, 0, img.width, img.height);
      }
    </script>
  </body>
</html>

【问题讨论】:

  • 您确定图像src 的路径正确吗?我在本地运行了你的代码,它似乎工作得很好。
  • @Krohn 它仍然不工作路径很好还有什么建议吗?
  • 创建一个重现问题的 jsFiddle。这将帮助其他人能够帮助你。

标签: javascript c# html asp.net-mvc-4 html5-canvas


【解决方案1】:

您需要等待图片加载后才能使用。例如,

var img = new Image();   // Create new img element
img.addEventListener("load", function() {
    // execute drawImage statements here
}, false);
img.src = 'myImage.png'; // Set source path

见https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Using_images

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    相关资源
    最近更新 更多