0

だから私は自分のキャンバスを持っていて、そこからいくつかの画像データを次のように取得します:

// assume canvas already has an image on it
var data = ctx.getImageData(0, 0, 20, 20);

今、データには多くのナンセンスがありますが、1600 個のアイテムの配列があるため、それが実際に何であるかはわかりません。それが何なのかわからない..

20x20 ブロック全体の平均 RGB 値を取得したいと考えています。画像データからそれを取得するにはどうすればよいでしょうか?

4

1 に答える 1

1

getImageDataプロパティを持つオブジェクトを返しdataます。そのプロパティは、表示されている値の配列です。

基本的には、次のように構築されます。

[
    pixel (0,0) red, pixel (0,0) green, pixel (0,0) blue, pixel (0,0) alpha,
    pixel (1,0) red, pixel (1,0) green, pixel (1,0) blue, pixel (1,0) alpha
    ......
]

等々。

したがって、ピクセル (X,Y) の色を取得するには(Y*W+X)*4、赤、(Y*W+X)*4+1緑、(Y*W+X)*4+2青、および(Y*W+X)*4+3アルファの値を取得する必要があります。ここで、W は画像データの幅です (この場合、 20)

于 2013-01-08T02:08:32.100 に答える