相关疑难解决方法(0)

在JavaScript中按值复制imageData

在我的应用程序中,我有一个处理Canvas ImageData的函数.它看起来像这样:

function processData(imagedata, filters) {
  var data = imagedata.data;
  //manipulate data with filters
  imageData.data = data;
  return imageData;
}
Run Code Online (Sandbox Code Playgroud)

我一直在用它:

var imageData = processData(imageData, {...});
Run Code Online (Sandbox Code Playgroud)

但是因为imageData对象是通过引用传递的,所以它也会像这样工作:

processData(imageData, {...}); // no assignment
Run Code Online (Sandbox Code Playgroud)

我已经在我的项目中找到了一个点,我需要能够处理一些imageData,同时仍然可以访问原始数据.我的第一次尝试类似于以下内容:

var originalData = imageData;
var processedData = processData(imageData, {...});
Run Code Online (Sandbox Code Playgroud)

这当然会导致相同的imageDatas.

所以我的第二个想法是编辑processsData函数,以便它以某种方式操纵imageData的副本,而不是传递的imageData.我尝试这样做的所有尝试都失败了,或者效率非常低.只是想知道是否有一种特殊的方法来做到这一点.提前致谢.

javascript html5 canvas reference

12
推荐指数
2
解决办法
7942
查看次数

标签 统计

canvas ×1

html5 ×1

javascript ×1

reference ×1