imageData печатает неправильное значение

Мне нужно манипулировать пикселями изображения и сохранять целочисленные значения (0-255) в значениях RGBA.

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

Потому что присвоенное значение не совпадает с спасенным значением???

Спасибо!


person Kevin Nascimento    schedule 09.11.2016    source источник


Ответы (1)


При изменении альфа-канала пикселя RGBA браузер обновит значения других цветов (RGB). Например, если используется альфа = 0, значения RGB также будут равны 0.

Чтобы решить эту проблему, присвойте альфа-каналу значение 255, чтобы оно не влияло на другие значения.

person Kevin Nascimento    schedule 09.11.2016