画面上の特定のピクセルの座標を入力できるプログラムが必要です。そのピクセルの色が変わると何か起こることがあります。 (特に、演奏する音楽)。単一ピクセルの色の変化を検出するプログラムですか?
私はMacBookを持っていて、これをプログラミングする方法が新しくなっています。
画面上の特定のピクセルの座標を入力できるプログラムが必要です。そのピクセルの色が変わると何か起こることがあります。 (特に、演奏する音楽)。単一ピクセルの色の変化を検出するプログラムですか?
私はMacBookを持っていて、これをプログラミングする方法が新しくなっています。
私は画面の現在のイメージをピクセルデータとして取得する方法はわかりませんが、そうするとプリミティブ配列(おそらくunsigned char)になります。配列は複数の異なるフォーマットのどれでもかまいませんが、最も一般的なのは4バイトのRGBAです。これは各コンポーネントが1バイトの情報を取得することを意味します。ピクセルデータは、通常、ブック内のテキストのように、左から右、上から下にレイアウトされます。
ピクセルが位置(x、y)にあるとします。ピクセルデータのインデックスを取得するためには、次の手順を実行する必要があります:
int width; //set to the width of the image
int height; //set to the height of the image
int index;
//number of bytes per pixel * number of pixels per row * number of rows
index = 4 * width * y; //get the index of the start of the correct row
//number of bytes per pixel * number of pixels to go across
index += 4 * x; //get the index of the correct column in the row
// pixels[index] = red byte
// pixels[index + 1] = green byte
// pixels[index + 2] = blue byte
// pixels[index + 3] = alpha byte
// pixels[index - (any number)] = previous pixels
// pixels[index + (any number more than 3)] = future pixels
今、あなたはただ与えられた画素のためのRGBA値を格納し、特定画素の画素データにアクセスする方法を知っていることプログラムの開始時に、プログラムが実行されるときに、時折、現在の色を保存された色と比較する(タイマーを使用する)。彼らが違うときは、何かをする(音楽を演奏する)。
希望すると便利です。