2012-12-01 16 views
14

キャンバスので、同じようcanvasから引か:XとYのピクセル座標取得私はいくつかの画像データを反復していますgetImageData

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ピクセルは私がいることを座標で?

答えて

11

単純な算術シーケンス:

分割幅によって線形位置。それがあなたのY座標です。そのY座標に幅を掛け、線形位置からその値を減算します。結果はX座標です。

また、RGBAであるため、線形位置を4で除算する必要があります。

+0

デュード - そのためのおかげで、私は時間のカップルのためのレンガの壁に頭を叩いてきましたこれで、今すぐソートされました – jcvandan

+0

例を教えてください。私はこのシーケンスを完全に理解しているとは思わない。万が一以下の回答が正しいですか?私はピクセルのX座標とY座標を得るのに苦労しています。どんな助けでも大歓迎です。 – Awin

+0

私はちょうど "線形位置"が何を意味するかを知る必要があると思う。それはデータ配列内の位置ですか?または、インデックス/ 4であるピクセル位置? – Awin

7

これは

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

作業していません.. – user889030

18

を修正し、コードのバージョンテストされ動作するはずです:

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

作品をテストしました – user889030

関連する問題