原文链接: 拷贝一个imageData, 避免多次向worker中发送数据导致的异常
下一篇: putImageData 绘制矩形图片
将一个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);
};