javascript - Canvas.drawImage 不工作

标签 javascript html html5-canvas drawimage

我知道这个问题已被问过很多次,但我无法弄清楚我做错了什么

var canvas = document.getElementById('myCanvas');

function handleFiles(files) {
  var preview = document.getElementById('preview');
  for (var i = 0; i < files.length; i++) {
    var file = files[i];
    var imageType = /^image\//;

    if (!imageType.test(file.type)) {
      continue;
    }

    var img = document.createElement("img");
    img.classList.add("obj");
    img.src = URL.createObjectURL(file);
    preview.appendChild(img); // Assuming that "preview" is the div output where the content will be displayed.

    img.onload = drawImage(img);

  }
}
var drawImage = function(img) {
  var ctx = canvas.getContext("2d");
  ctx.drawImage(img, 0, 0);

}
<div id="preview"></div>
<input type="file" onchange="handleFiles(this.files)">
<canvas id="myCanvas"></canvas>

最佳答案

DEMO

应该是

img.onload = function(){drawImage(img)};

如果没有可以调用的方法参数

img.onload = drawImage;

而不是

 img.onload = drawImage()// not correct

语法是

x.onload = funcRef;//reference

你应该分配一个函数引用。如果你分配drawImage(img),那么drawImage(img)的返回值将被分配给onload函数

关于javascript - Canvas.drawImage 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40084616/

相关文章:

javascript - 为什么canvas元素不能绑定(bind)事件?

javascript - 提交和点击不能一起工作

jquery - 单击在 MouseOver 上淡入淡出的图像?

javascript - 在 HTML 5 标签视频上绘制矩形

html - 绝对定位的 div 被父级切断。

javascript - 使用Javascript更改html按钮文本和图像

javascript - 谷歌浏览器和 FPS 的奇怪行为

javascript - 在 Angular 组件中使用 $onChanges 与 $onInit

javascript - 使用 JavaScript 从字符串中删除这两个词?

javascript - 如何获取Google Maps v3上权利通知的尺寸?