Javascript图像数据到多维数组性能问题
Javascript image data to multidimensional array performance issues
我编写了一个将画布图像数据数组转换为基于多维坐标的数组的方法,如下所示:
parse: function() {
var x = y = 0;
var step = 0;
for(var i = 0; i <= this.imageData.length - 4; i += 4) {
if(step == this.width) {
++ y;
step = 0;
}
this.data[x][y] = [this.imageData[i],
this.imageData[i+1],
this.imageData[i+2],
this.imageData[i+3]];
++ x;
++ step;
}
}
我已经在较小的规模(10x10 图像)上对其进行了测试,但是当我移动到更大的图像(在我的情况下为 800x800)时,它会完全崩溃浏览器(选项卡)。我可以理解为什么,但是,我想知道是否有更有效的方法可以解决这个问题。
有什么想法吗?
你可以通过
利用%
(模)运算符来做一些数学运算,如下所示:
var floor = Math.floor; // store a reference to Math.floor, anything goes when you have 640,000 iterations
parse: function(imageHeight, imageWidth) {
for(var i = 0; i < this.imageData.length; i++) {
this.data[i % imageWidth][Math.floor(i/imageHeight)] = [this.imageData[i],
this.imageData[i+1],
this.imageData[i+2],
this.imageData[i+3]];
}
}
当然,您必须提出imageHeight
和imageWidth
的值。
相关文章:
- JavaScript数组优化以提高性能
- javascript散列/数组混合性能
- 哪一个在访问数组长度方面的性能更好
- Javascript性能:如何在数组中循环并检查每个值比indexOf、search和match更快
- 捕获异常,而不是比较性能的数组值
- 在JavaScript性能方面模拟结构处理的C数组
- 面对非常糟糕的 angular.copy 用于大型数组的性能
- 在MongoDb中将数据存储为对象与数组以提高写入性能
- 诉诸数组中不存在的元素,会大大降低性能
- Javascript图像数据到多维数组性能问题
- Javascript 对象与数组性能
- 什么最适合性能:带键的数组或包含数组的键
- 使用动态生成的数据数组进行 ng 重复的性能
- 在循环中缓存数组查找是否有任何性能提升
- ClojureScript数组性能需要mod吗?或者它只是关于边界检查
- Javascript中嵌套for循环与数组函数的性能
- 处理大型数组时的JavaScript性能
- 即使使用较小的块,Javascript数组性能也会崩溃
- 对于循环性能:将数组长度存储在变量中
- 任何提高JavaScript数组性能的方法