我正在尝试使用网络工作者来处理一些 ImageData,但是在尝试放回图像数据时遇到了问题。
首先,我将一些 ImageData 发送给我的工人:
worker.postMessage({
'pixels':
_context.getImageData(0,
i*(_height / _blindNumber),
_width,
_height / _blindNumber),
'key': i,
'width': _width,
'height': _height
});
在那里,我执行了一些图像处理并回发了一个包含修改后的 ImageData 的新对象。
//From worker
self.postMessage({
'key': data.key,
'pixels': pixels
});
然后我获取它并将其放入一个数组中:
worker.onmessage = function(e) {
var data = e.data;
_imgSlices[data.key].pixels = data.pixels;
});
后来我尝试使用我新修改的 ImageData
_canvas.getContext('2d').putImageData(_imgSlices[i].pixels, 0, 0);
但我收到以下错误:“TypeError:Value 未实现接口 ImageData。”
如果我测试从 Worker 那里得到的数据,它会告诉我数据实际上是 ImageData:
console.log(_imgSlices[i].pixels); //Outputs: [object ImageData]
可能出了什么问题?
谢谢!