Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用画布在另一个图像上绘制图像_Javascript_Jquery_Html_Canvas - Fatal编程技术网

Javascript 如何使用画布在另一个图像上绘制图像

Javascript 如何使用画布在另一个图像上绘制图像,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,我正在使用画布在另一个图像上绘制精确定位图像。我是画布新手;请进一步指导我 我已经获取了一个img元素并将其复制到画布中。现在我试图在画布对象上放置另一个图像,但它不起作用 这是我的 HTML: <p>Image to use:</p> <img id="scream" src="https://cdn3.iconfinder.com/data/icons/social-media-icons/32/Location-512.png" alt="The Scream

我正在使用画布在另一个图像上绘制精确定位图像。我是画布新手;请进一步指导我

我已经获取了一个
img
元素并将其复制到画布中。现在我试图在画布对象上放置另一个图像,但它不起作用

这是我的

HTML:

<p>Image to use:</p>
<img id="scream" src="https://cdn3.iconfinder.com/data/icons/social-media-icons/32/Location-512.png" alt="The Scream" width="220" height="277">

<p>Canvas to fill:</p>
<canvas id="myCanvas" width="250" height="300"
style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>

<p><button id="button1">Copy Imange</button></p>
<p><button  id="button2">Draw OVer copied image</button></p> 

有几个问题。首先,单击事件都在查找元素
$(“#按钮1”)
。我假设第二次点击事件应该是针对
$(“#按钮2”)

下一个问题是,在第二次单击事件中,您使用的是从URL到图像的
drawImage
。无法直接执行此操作,您需要创建一个新图像并将源属性设置为:

var img2 = new Image();
img2.src = 'https://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png';
您也不应该在每次单击时设置画布和上下文,您只需要设置一次。以下是完整的示例:


有几个问题。首先,单击事件都在查找元素
$(“#按钮1”)
。我假设第二次点击事件应该是针对
$(“#按钮2”)

下一个问题是,在第二次单击事件中,您使用的是从URL到图像的
drawImage
。无法直接执行此操作,您需要创建一个新图像并将源属性设置为:

var img2 = new Image();
img2.src = 'https://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png';
您也不应该在每次单击时设置画布和上下文,您只需要设置一次。以下是完整的示例:


你的两个点击事件都是针对#button1的,我猜这不正确?你的两个点击事件都是针对#button1的,我猜这不正确?
$(document).ready(function(){    
    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");
    var img = document.getElementById("scream");
    var img2 = new Image();
    img2.src = 'https://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png';

    $("#button1").click(function(){   
        ctx.drawImage(img,10,10);
    });

    $("#button2").click(function(){   
        ctx.drawImage(img2,10,10);
    });
});