Получите координаты X и Y пикселей при итерации по холсту HTML5 getImageData

Я повторяю некоторые данные изображения, извлеченные из canvas например:

var imageData = this.context.getImageData(0, 0, this.el.width, this.el.height);
var data = imageData.data;

for (var i = data.length; i >= 0; i -= 4) {
    if (data[i + 3] > 0) {
        data[i] = this.colour.R;
        data[i + 1] = this.colour.G;
        data[i + 2] = this.colour.B;
    }
}

Как рассчитать текущие координаты пикселя X и Y, на которых я нахожусь?

Ответ 1

Простая арифметическая последовательность:

Разделите линейное положение на ширину. Это ваша Y-координата. Умножьте Y-координату на ширину и вычтите это значение из линейного положения. Результатом является координата X.

Также обратите внимание: вам придется разделить линейную позицию на 4, так как это RGBA.

Ответ 2

Исправлена и протестирована версия кода:

var x = (i / 4) % this.el.width;
var y = Math.floor((i / 4) / this.el.width);

Ответ 3

Это должно работать

var x = (Math.floor(i / 4) % 4);
var y = Math.floor(Math.floor(i/this.el.width)/4);