画面ピクセルの色を検出する方法
この質問では、ユーザーは特定のピクセルの色を決定する方法を探しています彼らの画面に。最終的な目標は、特定の色が検出されたときにアクションをトリガーすることです。
効率的な解決策を見つける
最も効果的なアプローチには、GetColorAt 関数を使用してピクセルの色を取得することが含まれます。特定の場所に色を付けます。他の方法とは異なり、このアプローチはシステムに接続されているモニターの数に依存しません。
GetColorAt 関数を実装する C# コード スニペットを次に示します。
public Color GetColorAt(Point location) { using (Graphics gdest = Graphics.FromImage(screenPixel)) { using (Graphics gsrc = Graphics.FromHwnd(IntPtr.Zero)) { IntPtr hSrcDC = gsrc.GetHdc(); IntPtr hDC = gdest.GetHdc(); int retval = BitBlt(hDC, 0, 0, 1, 1, hSrcDC, location.X, location.Y, (int)CopyPixelOperation.SourceCopy); gdest.ReleaseHdc(); gsrc.ReleaseHdc(); } } return screenPixel.GetPixel(0, 0); }
ピクセル カラー情報
GetColorAt 関数を使用して、画面上の特定のピクセルをポーリングできるようになりました。希望の色。青色のピクセルをポーリングする例を次に示します。
private void PollPixel(Point location) { while(true) { var c = GetColorAt(location); if (c.R == c.G && c.G < 64 && c.B > 128) { DoAction(); return; } Thread.Sleep() } }
このコードは、特定の位置にあるピクセルを継続的にポーリングします。ピクセルが青色の基準に一致すると、DoAction メソッドがトリガーされます。
結論
GetColorAt 関数を使用すると、個々の画面ピクセルの色を効率的に決定できます。この機能を使用すると、特定のアプリケーションの必要に応じて、さまざまな画像処理タスクや画面検出タスクを実装できます。
以上が特定の画面ピクセルの色をプログラムで検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。