Maison > développement back-end > C++ > Comment puis-je détecter par programme la couleur d'un pixel d'écran spécifique ?

Comment puis-je détecter par programme la couleur d'un pixel d'écran spécifique ?

DDD
Libérer: 2024-12-30 06:34:09
original
568 Les gens l'ont consulté

How Can I Programmatically Detect the Color of a Specific Screen Pixel?

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);
}
Copier après la connexion

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 &amp;&amp; c.G < 64 &amp;&amp; c.B > 128)
        {
            DoAction();
            return;
        }

        Thread.Sleep()
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal