Javascript 在画布上绘制多个图像并保存到图像
我正在尝试构建一个构造器,您可以在其中应用多个图像,画布上的texxt,然后将所有图像保存在一个图像中 我无法使它与多个图像一起工作 这是我从以下代码中获取的代码: 有人能告诉我为什么在我尝试通过循环绘制图像时它不起作用吗? 函数loadImagessources,回调{ var图像=[]; var loadedImages=0; var numImages=0; //获取源的数量 fori=0;iJavascript 在画布上绘制多个图像并保存到图像,javascript,html,image,canvas,Javascript,Html,Image,Canvas,我正在尝试构建一个构造器,您可以在其中应用多个图像,画布上的texxt,然后将所有图像保存在一个图像中 我无法使它与多个图像一起工作 这是我从以下代码中获取的代码: 有人能告诉我为什么在我尝试通过循环绘制图像时它不起作用吗? 函数loadImagessources,回调{ var图像=[]; var loadedImages=0; var numImages=0; //获取源的数量 fori=0;i
function loadImages(sources, callback) {
var images = [];
var loadedImages = 0;
var numImages = 0;
// get num of sources
for(i=0; i< sources.length; i++) {
numImages++;
}
for(i=0; i< sources.length; i++) {
images[i] = new Image();
images[i].onload = function() {
if(++loadedImages >= numImages) {
callback(images);
}
};
images[i].src = sources[i];
}
}
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
//var sources = {
// darthVader: '/image/CategorieVerkeersborden/Verboden.jpg',
// yoda: '/image/CategorieVerkeersborden/Funborden.jpg'
//};
var sources = []; // I need to add the values to that array dynamically I
$(document).ready(function(){
$('.add').click(function(){
if ( $.inArray($(this).siblings('img').attr('src'), sources) == -1 ){
sources[sources.length] = $(this).siblings('img').attr('src');
}
loadImages(sources, function(images) {
imageElem = document.getElementById('image');
for (i = 0; i< sources.length; i++){
context.drawImage(images[i], 0, 0, 300, 200); // this is the part that doesn't work - it draws the last image in the array I guess
}
//context.drawImage(images.darthVader, 0, 0, 300, 200);
//context.drawImage(images.yoda, 0, 0, 200, 150);
// the above part works
imageElem.src = context.canvas.toDataURL('image/png');
});
});
});