2

我正在尝试使用网络工作者来处理一些 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]

可能出了什么问题?

谢谢!

4

0 回答 0