拷贝一个imageData, 避免多次向worker中发送数据导致的异常

原创
2020/11/14 19:45
阅读数 67

 

原文链接: 拷贝一个imageData, 避免多次向worker中发送数据导致的异常

将一个imageData发送到worker后, 再次发送会报异常

DOMException: Failed to execute 'postMessage' on 'Worker': ArrayBuffer at index 0 is already detached.

 

主要原因是, 发送后buffer被转移了, 所以导致数据为空, 也就是postMessage后的imageData里面buffer为空

每次发送之前clone一份, 除非是一次性的就不需要了

export const cloneImageData = (imageData) => {
  // create a Uint8ClampedArray copy of imageData.data
  const copyOfData = Uint8ClampedArray.from(imageData.data);
  return new ImageData(copyOfData, imageData.width, imageData.height);
};

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部