我遇到创建ImageData的问题。我收到以下错误消息:
Uncaught IndexSizeError:无法构造'ImageData':输入数据字节长度不是(4 *宽度)的倍数。
以下是我正在运行的方法:
public setPixelData(data: Buffer, width: number, height: number) {
var imageData = new ImageData(new Uint8ClampedArray(data), width, height);
this.canvas.getContext('2d').putImageData(imageData, 0, 0);
}
我已经转储了数据,这就是显示的内容:
data = Uint8Array[632028]
width = 720
height = 720
那么,这个错误的原因是什么,以及如何解决?
答案 0 :(得分:1)
我遇到了同样的问题,显然数组大小需要是宽度,高度和4 的倍数。 正如Daniel正确指出的那样乘以4是由于RGBA颜色空间,它由红色,绿色,蓝色和alpha四个通道组成。
因此,对于您的情况:720 * 720 * 4等于2073600
SortedMap