首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将图像添加到JavaScript数组,然后在另一个函数调用中显示它们

将图像添加到JavaScript数组,然后在另一个函数调用中显示它们
EN

Stack Overflow用户
提问于 2014-10-16 16:24:56
回答 3查看 74关注 0票数 1

我这里有一个小问题,我一直在折腾我的头,但不知何故,解决方案逃避了我。有人能告诉我我哪里做错了吗?

在调用函数saveImages()时,我必须将图像从画布保存到ImageArray,这是一个Javascript数组。我已经将ImageArray声明为一个全局变量(即在任何函数之外)

代码语言:javascript
运行
复制
var ImageArray = new Array(); // is this the proper way to do it?

接下来,我调用saveImages()函数。

代码语言:javascript
运行
复制
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个),并且希望在调用一个单独的函数(比如displayImages() )时显示ImageArray中的所有5个图像。这就是我希望将ImageArray保留为global的原因

有没有人能告诉我,我该怎么纠正哪里出了问题?非常提前感谢:)

EN

回答 3

Stack Overflow用户

发布于 2014-10-16 16:31:16

改用这个。

var array = [];array.push(图片);

票数 0
EN

Stack Overflow用户

发布于 2014-10-16 16:32:28

  1. 在设置ImageArray[0]src属性之前,未对其进行初始化。您可以改写以下代码:

ImageArray ={ src:};

  • 数组的length是一个属性,而不是一个函数,所以它应该是:

ImageArray.length;

  • The = no_of_pics_compared问题:

var ImageArray = new Array();//这是正确的方法吗?

是!但您可以编写以下简短版本:

var ImageArray = [];

您可以阅读有关如何在here. JavaSscript中创建阵列的详细信息

最后,在上述更改之后,您的代码:

代码语言:javascript
运行
复制
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);

}
票数 0
EN

Stack Overflow用户

发布于 2014-10-16 16:32:30

在数组中,首先必须创建要添加到数组中的对象,然后将其直接推送到数组中:

代码语言:javascript
运行
复制
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);  
   .
   .
   .

}

另外,length是一个属性,而不是一个函数,所以你必须像这样得到它:

代码语言:javascript
运行
复制
no_of_pics_compared= ImageArray.length;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26399534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档