【发布时间】:2021-03-27 23:17:22
【问题描述】:
我想做一个拖放图像,然后在画布上显示该图像,我真的不知道该怎么做。但这是我尝试过的:
var canvas = document.getElementById("canvas2");
var c = canvas.getContext("2d");
//console.log(canvas)
canvas.ondrop = function(e){
e.preventDefault();
c.drawImage(e.dataTransfer.files[0], 0, 0, c.canvas.width, c.canvas.height);
}
canvas.ondragover = function(e){
console.log("test")
return false;
}
#canvas2{
position:relative;
z-index:100;
margin-top: 100px;
border:1px solid #000000;
}
<html lang="en">
<head>
<!-- <meta http-equiv="refresh" content="5" > -->
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<!-- <label for="GridCheck">Grid:</label> -->
<!-- <input type="checkbox" id="GridCheck" onclick="GridToggle('canvas1')"> -->
<div class="canvasContainer">
<canvas id = "canvas2" class="canvas"></canvas>
</div>
<script src="main.js"></script>
</body>
</html>
我知道问题是“c.drawImage(e.dataTransfer.files[0], 0, 0, c.canvas.width, c.canvas.height);”部分。我是否需要实际上传图像才能访问它在画布上显示它?我很困惑...
【问题讨论】:
-
如果我没记错的话,您需要从中读取文件。 stackoverflow.com/q/22245100
-
是的,我试过了。该函数返回这个数据 url 的东西(像这样:imgur.com/a/zuzml2I),当我尝试用 context.drawImage() 绘制它时,它会抛出一个错误,说它不是正确的类型或其他东西。
标签: javascript html css canvas