在HTML5 canvas getImageData上迭代时获取X和Y像素坐标

时间:2012-12-01 15:11:34

标签: javascript html5-canvas

我正在迭代从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像素坐标?

2 个答案:

答案 0 :(得分:29)

经过更正和测试的代码版本:

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

答案 1 :(得分:12)

一个简单的算术序列:

将线性位置除以宽度。那是你的Y坐标。将Y坐标乘以宽度,并从线性位置减去该值。结果是X坐标。

另请注意,您必须将线性位置除以4,因为它是RGBA。