获取图像数据的多维数组

Multi dimensional array with get image data

本文关键字:数组 图像 数据 获取      更新时间:2023-09-26

我真的很困惑我正在制作的数组,它有点令人困惑,但我相信这是我接近我想要做的事情的唯一方法。

我的想法是将getImageData存储在一个数组中,这样我就可以将每个图像链接到一个数据数组。

这就是我创建数组的方式:

var listObj = {
    id: uid,
    extra: [
            ctx2.getImageData(abposx,abposy,imgwidth,imgheight)
        ]
    };
pixeld.push(listObj);

所以现在我试图运行数组"pixeld"来找到uid,但我不知道语法应该是什么……这就是我尝试的:

for (j = (pixeld.length-1); j > -1; --j){
        if(pixeld[j].extra.data[3] !==0){ //line 220
            matches.push(pixeld[j].id);
        }
    }

问题是我得到了这个错误:

Uncaught TypeError: Cannot read property '3' of undefined on line 220

我已经在for循环中标记了哪一行是220。

有人知道我的错误是什么吗?

因此,您的结构如下所示:

var pixeld = [];  // an Array
var listObj = {}; //an Object
listObj = {  // literal notation
   id    : uid,
   extra : [ ctx2.getImageData(abposx,abposy,imgwidth,imgheight) ]
}

现在的问题是:ctx.2.getImageData()返回了什么?你需要澄清一下。

pixeld[j].extra之前,一切都很好,但没有data-属性。如果getImageData()真的返回了一个数组,您应该能够访问如下:

 pixeld[j].extra[3]

问题是,您试图将.extra引用为一个对象,但却将其声明为一个内部只有一个值的数组(ctx2.getImageData返回的值)。

只需删除ctx2.getImageData函数调用周围的伪[],就可能修复它