it-swarm.com.de

Gibt es ein Befehlszeilenprogramm, das die Farbe des Pixels basierend auf den Bildschirmkoordinaten zurückgibt?

Gibt es ein Befehlszeilenprogramm, das den Farbwert eines Pixels ausschließlich auf der Grundlage seiner Bildschirmkoordinaten zurückgibt.

Gibt es so ein Tool?

(Außerdem: Das Tool sollte keine Benutzeraktion erfordern. Es muss in einer Schleife in einem Skript ausgeführt werden.)

10
Peter.O

Sie können das Programm grabc verwenden. Es wird Ihren Mauszeiger in ein Fadenkreuz verwandeln und HTML- und RGB-Werte der ausgewählten Farbe zurückgeben.

Sudo apt-get install grabc

Nachteil: Eine pixelgenaue Auswahl ist nicht möglich, da das Fadenkreuz nicht dünn genug ist.


Sie können auch ein python -Skript erstellen, etwa wie folgt:

#!/usr/bin/python -W ignore::DeprecationWarning
import sys
import gtk

def get_pixel_rgb(x, y):
    pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8, 1, 1)
    pixbuf.get_from_drawable(gtk.gdk.get_default_root_window(),
                             gtk.gdk.colormap_get_system(), 
                             x, y, 0, 0, 1, 1)
    return pixbuf.get_pixels_array()[0][0]

print get_pixel_rgb(int(sys.argv[1]), int(sys.argv[2]))

mach es ausführbar und führe pixel_rgb="$(/path/to/script.py x y)" in deinem Bash-Skript aus. Natürlich müssen Sie das Skript nach Ihren Wünschen ändern, eine Fehlerbehandlung hinzufügen und so weiter.

PS: Ich bin mir nicht sicher, ob Sie irgendetwas gegen die DeprecationWarning tun können, also habe ich sie in der ersten Zeile deaktiviert.

12
htorque

Dies ist etwas unübersichtlich, aber Sie können dies mit xdotool erreichen, mit dem Sie mit der Maus interagieren können, und mit grabc, mit dem die Farbe von einer Stelle abgerufen wird, auf die auf dem Bildschirm geklickt wird.

Sudo apt-get install xdotool grabc

Führen Sie zuerst grabc aus, aber im Hintergrund

grabc &

Führen Sie dann mit xdotool einen Mausklick aus

xdotool click 1

Der Klick wird mit dem Cursor von grabc erfasst und der Hintergrundprozess gibt die Farbe aus.

5
misterben

Eine andere Lösung mit xwd und xdotool:

xwd -root -silent | convert xwd:- -depth 8 -crop "1x1+$X+$Y" txt:- | grep -om1 '#\w\+'

dabei sind $X und $Y Ihre Koordinaten.

Als Teil von Xorg sollte xwd auf Ihrem System vorinstalliert sein. xdotool kann installiert werden mit:

Sudo apt-get install xdotool 

Basierend auf @Christians Antwort auf eine StackOverflow-Frage & Antwort und diesem imagemagick.org-Thread .

2
Glutanimate

Für solche Operationen habe ich ein python -Modul namens Macropolo geschrieben. Aber es geht um viel mehr als nur darum, die Farbe eines Pixels auf den Bildschirm zu bringen.

Hier ist der Forumsbeitrag, in dem ich ihn geteilt habe: http://ubuntuforums.org/showthread.php?t=2155281

Das Modul verfügt über viele Funktionen, mit denen Sie z. Zählen Sie die Anzahl der Pixel, die eine bestimmte Farbe in einem Bereich des Bildschirms haben, suchen Sie nach Pixelfarben in einem Bereich, warten Sie auf ein Pixel oder einen Bereich des Bildschirms mit einer bestimmten Farbe, warten Sie auf eine Pixelfarbe und führen Sie einen anderen aus Funktion während des Wartens (z. B. bewegen Sie den Cursor, damit sich der Bildschirm nicht ausschaltet, während Sie auf eine bestimmte Farbe warten).

Aber, wie gesagt, es macht noch viel mehr, wie Mausklicks und Tastaturen simulieren, Screenshots vom Bildschirmbereich machen und vieles mehr.

2
hytromo