Comment détecter la couleur d'un pixel de l'écran
Dans cette question, un utilisateur recherche une méthode pour déterminer la couleur d'un pixel spécifique sur leur écran. Le but ultime est de déclencher une action lorsqu'une certaine couleur est détectée.
Trouver la solution efficace
L'approche la plus efficace consiste à utiliser la fonction GetColorAt pour récupérer la valeur du pixel. couleur à un endroit précis. Contrairement à d'autres méthodes, cette approche est indépendante du nombre de moniteurs connectés au système.
Voici un extrait de code C# qui implémente la fonction GetColorAt :
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); }
Utilisation de la Informations sur la couleur des pixels
Avec la fonction GetColorAt, vous pouvez désormais interroger un pixel spécifique sur l'écran pour un résultat souhaité. couleur. Voici un exemple d'interrogation d'un pixel bleu :
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() } }
Ce code interroge en continu le pixel à un emplacement spécifique. Lorsque le pixel correspond aux critères bleus, il déclenche la méthode DoAction.
Conclusion
En utilisant la fonction GetColorAt, vous pouvez déterminer efficacement la couleur des pixels individuels de l'écran. Grâce à cette fonctionnalité, vous pouvez mettre en œuvre diverses tâches de traitement d'image ou de détection d'écran selon les besoins de votre application spécifique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!