为什么我不能将图像绘制到画布中

Why can't i draw an image into a canvas?

本文关键字:布中 绘制 图像 不能 为什么      更新时间:2023-09-26

我有一个画布和一个带有缩小图像的div。我想将其中一个缩小的图像拖到画布中。单击图像时,应保存 src,以便在将该图像放入画布时,我会以原始比例绘制。由于某种原因,此代码不起作用...

.HTML

<div id="LeftColumn">
    <canvas id="Canvas">
    </canvas>
</div>
<div id="TextureViewInside">
    <ul class="products">
        <img onclick="getSource(this.src)" id="firstPic" src="FärgadePapper.png">
            <img src="Hajar.png">
            <img src="Labyrint.png">
            <img src="Martini.png">
            <img src="FärgadePapper.png">
    </ul>
</div>

JavaScript

function first(){
    canvas = document.getElementById('Canvas');
    var ctx = canvas.getContext("2d");
    canvas.addEventListener("dragenter", function(e){e.preventDefault();}, false);
    canvas.addEventListener("dragover", function(e){e.preventDefault();}, false);
    canvas.addEventListener("drop", dropped, false);
}
function getSource(scr){
    alert(src);
    a = new image();
    a.src = src;
}
function dropped(){
    canvas.drawImage(a, 0, 0);
}
window.addEventListener("load", first, false);

应该是new Image(),而不是带有小写"i"的"image"。此外,您需要直接使用上下文而不是画布来绘制图像。同样在getSource()函数中,您调用参数"scr",但函数中的代码调用它"src"。

此外,您确实应该在某处明确声明"a"。