javascript - 在按钮单击 Canvas 上绘制图像不起作用

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

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

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

<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>

最佳答案

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

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

关于javascript - 在按钮单击 Canvas 上绘制图像不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31182538/

相关文章:

c# - 使用 Jquery 的可编辑下拉列表?

c# - 正确处理自动属性的 C# 到 VB.Net 的转换实用程序?

ios - Mobile Safari - 等到 <video> 完全下载后再播放

html - 不显示 Jade 的 Bootstrap 导航栏

javascript - jQuery-Mobile 中出现意外的 "ui-li-static"和 "ui-body-c"

php - 无法更改 CSS 字体类

javascript - 如何在网络浏览器中测试 asm.js 的可用性?

c# - 使用 github 操作进行部署时更改 appsettings 中的变量

javascript - 将 PATH 从 SVG 转换为 POLYLINE

javascript - 防止用户登录页面中的 PHP/Javascript session 滥用