如何偵測螢幕像素的顏色
在這個問題中,使用者尋求一種方法來確定特定像素的顏色在他們的螢幕上。最終目標是在偵測到某種顏色時觸發操作。
尋找有效的解決方案
最有效的方法是使用 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中文網其他相關文章!