我在JS和Html之间的交互方面还很陌生,我想知道是否可以通过HTML(一个按钮或将其拖放)上传图像,并在JS画布上显示,以便我可以通过它进行修改纯JavaScript,没有jQuery。

因此,我可以例如这样调用图像:Image(img,0,0)..按下鼠标时在其上添加背景或点。

我知道我的要求以及如何提出要求听起来听起来很愚蠢,但是正如我所说的那样,我是这个领域的新手。

我将不胜感激,例如提供指向相似问题的链接。

谢谢

乔万尼

最佳答案

也许,您可以尝试这样的事情...



var fileUpload = document.getElementById('fileUpload');
var canvas  = document.getElementById('canvas');
var ctx = canvas.getContext("2d");

function readImage() {
    if ( this.files && this.files[0] ) {
        var FR= new FileReader();
        FR.onload = function(e) {
           var img = new Image();
           img.src = e.target.result;
           img.onload = function() {
             ctx.drawImage(img, 0, 0, 512, 512);
           };
        };
        FR.readAsDataURL( this.files[0] );
    }
}

fileUpload.onchange = readImage;

canvas.onclick = function(e) {
  var x = e.offsetX;
  var y = e.offsetY;
  ctx.beginPath();
  ctx.fillStyle = 'black';
  ctx.arc(x, y, 5, 0, Math.PI * 2);
  ctx.fill();
};

#canvas {
  border: 1px solid black;
  margin-top: 10px;
}

<input type='file' id="fileUpload"/>
<canvas id="canvas" width="512" height="512"></canvas>

09-11 20:35