Heim > Backend-Entwicklung > C++ > Wie kann ich die Farbe eines bestimmten Bildschirmpixels programmgesteuert erkennen?

Wie kann ich die Farbe eines bestimmten Bildschirmpixels programmgesteuert erkennen?

DDD
Freigeben: 2024-12-30 06:34:09
Original
554 Leute haben es durchsucht

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

So erkennen Sie die Farbe eines Bildschirmpixels

Bei dieser Frage sucht ein Benutzer nach einer Methode, um die Farbe eines bestimmten Pixels zu bestimmen auf ihrem Bildschirm. Das ultimative Ziel besteht darin, eine Aktion auszulösen, wenn eine bestimmte Farbe erkannt wird.

Die effiziente Lösung finden

Der effektivste Ansatz besteht darin, die Funktion „GetColorAt“ zum Abrufen der Pixel zu verwenden Farbe an einem bestimmten Ort. Im Gegensatz zu einigen anderen Methoden ist dieser Ansatz unabhängig von der Anzahl der mit dem System verbundenen Monitore.

Hier ist ein C#-Codeausschnitt, der die GetColorAt-Funktion implementiert:

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);
}
Nach dem Login kopieren

Verwenden der Informationen zur Pixelfarbe

Mit der GetColorAt-Funktion können Sie jetzt ein bestimmtes Pixel auf dem Bildschirm nach einem gewünschten Ergebnis abfragen Farbe. Hier ist ein Beispiel für die Abfrage eines blauen Pixels:

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()
    }
}
Nach dem Login kopieren

Dieser Code fragt kontinuierlich das Pixel an einer bestimmten Stelle ab. Wenn das Pixel den blauen Kriterien entspricht, wird die DoAction-Methode ausgelöst.

Fazit

Mit der GetColorAt-Funktion können Sie die Farbe einzelner Bildschirmpixel effizient bestimmen. Mit dieser Funktion können Sie verschiedene Bildverarbeitungs- oder Bildschirmerkennungsaufgaben implementieren, je nach den Anforderungen Ihrer spezifischen Anwendung.

Das obige ist der detaillierte Inhalt vonWie kann ich die Farbe eines bestimmten Bildschirmpixels programmgesteuert erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage