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