我在这里遇到一个小问题,我一直在试图解决这个问题,但不知何故,解决方案已经避开了我。谁能告诉我这里我做错了什么?
在函数saveImages()
调用中,我必须将图像从画布保存到{Javascript数组ImageArray
。我已将ImageArray
声明为全局变量(即在任何函数之外)
var ImageArray = new Array(); // is this the proper way to do it?
接下来,我调用saveImages()函数。
function saveImages() {
//here I draw on the canvas
Image = canvas.toDataURL('image/jpeg');
//window.open(Image, 'new_window'); // I see the window with the Jpeg Image data So I am sure that the image actually comes
ImageArray[0].src = Image; // Looked up the internet to find that dataToURL can be used as img source
no_of_pics_compared= ImageArray.length();
alert('no_of_pics_compared' + no_of_pics_compared) // I do not get this alert
}
我没有得到最后一个警告,这意味着代码中存在一些缺陷,导致它停止工作。
我希望能够多次调用此saveImages()
函数,直到达到限制(例如5),并希望在单独函数调用的ImageArray
中显示所有5个图像displayImages()
。这就是我希望将ImageArray
保持为global
有人可以告诉我如何纠正出错的地方。非常感谢提前:))
答案 0 :(得分:0)
请改用它。
var array = []; array.push(Image);
答案 1 :(得分:0)
在设置ImageArray[0]
属性之前,您没有初始化src
。您可以改为编写以下内容:
ImageArray[0] = {
src: Image
};
数组的length
是属性,不是函数,所以它应该是:
no_of_pics_compared = ImageArray.length;
问题:
var ImageArray = new Array(); // is this the proper way to do it?
是的!但您可以编写以下简短版本:
var ImageArray = [];
您可以在JavaSscript here中详细了解如何创建数组。
<小时/> 最后,在上述更改后的代码:
var ImageArray = [];
function saveImages() {
Image = canvas.toDataURL('image/jpeg');
ImageArray[0] = {
src: Image
};
no_of_pics_compared= ImageArray.length;
alert('no_of_pics_compared' + no_of_pics_compared);
}
答案 2 :(得分:0)
首先,在数组中,您必须创建要添加到数组的对象,然后将其直接推送到数组:
var ImageArray = new Array(); // Yes this is one of the proper ways to do it.
//Second Way:
// var ImageArray = [];
function saveImages() {
var newImage = new Image();
newImage.src = canvas.toDataURL('image/jpeg');
.
.
.
ImageArray.push(newImage);
.
.
.
}
而且长度是一个属性而不是一个函数所以你必须得到它:
no_of_pics_compared= ImageArray.length;