Czy istnieje narzędzie wiersza polecenia zwraca wartość koloru piksela, opartą wyłącznie na jego współrzędnych ekranowych .
Czy istnieje takie narzędzie?
(Również: Narzędzie nie powinno wymagać żadnych działań użytkownika. Ma działać w pętli w skrypcie.)
command-line
mouse
colors
Peter.O
źródło
źródło
Odpowiedzi:
Możesz użyć programu grabc . Zmieni wskaźnik myszy w celownik i zwróci wartości HTML i RGB wybranego koloru.
Wada: nie można dokonywać dokładnych pikseli, ponieważ celownik nie jest wystarczająco cienki.
Możesz także utworzyć skrypt Pythona, taki jak:
uczyń go wykonywalnym i uruchom
pixel_rgb="$(/path/to/script.py x y)"
w swoim skrypcie bash. Oczywiście musisz zmienić skrypt tak, jak potrzebujesz, dodać obsługę błędów i tak dalej.PS: Nie jestem do końca pewien, czy możesz coś zrobić z DeprecationWarning, więc wyłączyłem go w pierwszej linii.
źródło
no module named numpy.core.multiarray; Segmentation fault
. Która część zależy od tego modułu?Jest to trochę nieporadne, ale można to osiągnąć za pomocą xdotool, który pozwala na interakcję z myszą i grabc, który uzyskuje kolor z klikniętej na ekranie lokalizacji.
Najpierw uruchom grabc, ale w tle
Następnie wykonaj kliknięcie myszką za pomocą xdotool
Kliknięcie zostanie przechwycone przez kursor grabc i proces tła z wyjściem koloru.
źródło
xdotool getmouselocation | sed -e 's/x://' -e 's/y://' -e 's/ screen:.*$//'
weźmie współrzędne i wyczyści je do rozdzielonych spacjami wartości xy, aby zasilić ten skrypt.xdtool getmouselocation
... bardzo dobrze, dzięki ... Przydatność sed wciąż mnie zadziwia!Inne rozwiązanie, wykorzystujące
xwd
ixdotool
:gdzie
$X
i$Y
są twoje współrzędne.W ramach Xorg
xwd
powinien zostać zainstalowany fabrycznie w systemie.xdotool
może być zainstalowany z:Na podstawie odpowiedzi @ Christian na pytania i odpowiedzi StackOverflow oraz ten wątek imagemagick.org .
źródło
xwd
Podpory robienia zrzutów ekranu konkretnych identyfikatorów okiennych, więc można zapytać identyfikator okna (npxdotool search --name "$Win" | head -n1
), a następnie przekazać je doxwd
zxwd -id "$WinID" -silent | ...
. Uwaga: w tym przypadku współrzędne byłyby względne względem okna.Napisałem moduł Pythona dla takich operacji, zwany Macropolo. Ale robi o wiele więcej niż tylko uzyskanie koloru piksela na ekranie.
Oto post na forum, w którym go udostępniłem: http://ubuntuforums.org/showthread.php?t=2155281
Moduł ma wiele funkcji, które pozwalają np. Policzyć ilość pikseli, które mają określony kolor w obszarze ekranu, wyszukać kolory w obszarze, poczekać na piksel lub obszar ekranu ma określony kolor, poczekaj na kolor piksela i uruchom inną funkcję podczas oczekiwania (np. przesuń kursor, aby nie dopuścić do wyłączenia ekranu podczas oczekiwania na określony kolor).
Ale, jak powiedziałem, robi o wiele więcej rzeczy, takich jak symulowanie kliknięć myszką i klawiaturą, robienie zrzutów ekranu obszaru i więcej.
źródło