imageData打印错误值

imageData print wrong value

我需要处理图像中的像素并在 RGBA 值中保存整数值 (0-255)。

let imageData = this.context.getImageData(0, 0, this.width, this.height);
imageData.data[1448] = 10;
imageData.data[1449] = 20;
imageData.data[1450] = 30;
imageData.data[1451] = 40;
this.context.putImageData(imageData, 0, 0);

再次获取ImageData并打印各自索引中的值后,结果如下:

IDX 1448: 13

IDX 1449: 19,

IDX 1450: 32

IDX 1451: 40

因为赋值和拯救值不一样???

谢谢!

当您更改 RGBA 像素的 alpha 时,浏览器将更新其他颜色 (RGB) 的值。例如,如果使用 alpha = 0,则 RGB 值也为 0。

要解决此问题,请将值 255 分配给 alpha,这样它就不会影响其他值。