ImageData字节长度不是4 *宽度的倍数

时间:2016-07-24 20:59:28

标签: javascript arrays node.js bytearray

我遇到创建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

那么,这个错误的原因是什么,以及如何解决?

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,显然数组大小需要是宽度,高度和4 的倍数。 正如Daniel正确指出的那样乘以4是由于RGBA颜色空间,它由红色,绿色,蓝色和alpha四个通道组成。

因此,对于您的情况:720 * 720 * 4等于2073600



SortedMap