Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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_Html_Canvas_Drawimage - Fatal编程技术网

Javascript 将多个图像文件插入画布

Javascript 将多个图像文件插入画布,javascript,html,canvas,drawimage,Javascript,Html,Canvas,Drawimage,下面的代码应该可以找到用户插入到div中的图像,当用户单击“snap”按钮时,它会将这些图像装载到画布对象中的一个图像中。好的我可以在画布中找到图像、定位和调整大小,但图像源总是来自最后找到的图像。有人能帮我分析一下这段代码吗 提前谢谢 <!-- The HTML --> <div id="content" style="width: 640px; height: 480px;"> <div class="dragable-div"><img c

下面的代码应该可以找到用户插入到div中的图像,当用户单击“snap”按钮时,它会将这些图像装载到画布对象中的一个图像中。好的我可以在画布中找到图像、定位和调整大小,但图像源总是来自最后找到的图像。有人能帮我分析一下这段代码吗

提前谢谢

<!-- The HTML -->
<div id="content" style="width: 640px; height: 480px;">
    <div class="dragable-div"><img class="resizeable-image" style="position:absolute" src="images/glasses.gif" width="200" height="180" /></div>
    <div class="dragable-div"><img class="resizeable-image" style="position:absolute" src="images/nordic.gif" width="100" height="100" /></div>
</div>


<!-- The JS wich recognizes the images and sends them into the canvas -->
$('#snap').click(function() {

        len = $('#content > div').length;
        for(i = 0; i < len; i++){

            <!-- One '> div' more because the resize method puts one div around the object -->
            ptop = $('#content > div > div').eq(i).offset().top-8;
            pleft = $('#content > div > div').eq(i).offset().left - 8;
            ih = $('#content > div > div').eq(i).height();
            iw = $('#content > div > div').eq(i).width();
            img = $('#content > div > div').eq(i).find('img').attr('src');
            dIm(img, pleft, ptop, iw, ih);

        }

    });

    function dIm(img_source, posLeft, posTop, imWid, imHei){
        base_image = new Image();
        base_image.src = img_source;
        base_image.onload = function(){
            context.drawImage(base_image, posLeft, posTop, imWid, imHei);
        }   
    }

$(“#捕捉”)。单击(函数(){
len=$('#content>div')。长度;
对于(i=0;idiv>div').eq(i).offset().top-8;
pleft=$('#content>div>div').eq(i).offset().left-8;
ih=$('#content>div>div').eq(i).height();
iw=$('#content>div>div').eq(i).width();
img=$('#content>div>div').eq(i).find('img').attr('src');
dIm(img、pleft、ptop、iw、ih);
}
});
功能dIm(img_源、posLeft、posTop、imWid、imHei){
基本图像=新图像();
base_image.src=img_源;
base_image.onload=函数(){
drawImage(基本图像、posLeft、posTop、imWid、imHei);
}   
}
再一次:一切正常;除了图像源,它总是获取#content div中的最后一个图像源


提前谢谢

您已经将
base\u image
创建为一个全局变量,因此每次通过函数都会更新相同的引用。将
var
关键字添加到
dIm()函数中第一次使用的前面

function dIm(img_source, posLeft, posTop, imWid, imHei){
    var base_image = new Image();
    base_image.src = img_source;
    base_image.onload = function(){
        context.drawImage(base_image, posLeft, posTop, imWid, imHei);
    }   
}