Есть ли инструмент командной строки, возвращает значение цвета пикселя, базирующегося только на его экранных координатах.
Есть ли такой инструмент?
(Также: инструмент не должен требовать никакого пользовательского действия. Это должно работать в цикле в сценарии.)
Можно использовать программу grabc. Это повернет Ваш указатель мыши на прицеле и возвратит HTML и значения RGB выбранного цвета.
sudo apt-get install grabc
Оборотная сторона: не возможно сделать точные пикселем выборы из-за перекрестия, не являющегося достаточно тонким.
Можно также создать сценарий Python, что-то как:
#!/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]))
сделайте это исполняемым файлом и работайте pixel_rgb="$(/path/to/script.py x y)"
в Вашем сценарии удара. Конечно, необходимо было бы изменить сценарий путем, Вы нуждаетесь в нем, добавляете некоторую обработку ошибок и такой.
PS: я не абсолютно уверен, что можно сделать что-либо о DeprecationWarning, таким образом, я выключил его в первой строке.
Это - немного cludgy, но можно достигнуть этого с xdotool, который позволяет Вам взаимодействовать с мышью, и grabc, который получает цвет от местоположения, нажал на экран.
sudo apt-get install xdotool grabc
Первый показ grabc, но фон это
grabc &
Затем выполните щелчок мышью с помощью xdotool
xdotool click 1
Щелчок будет получен курсором grabc и фоновым процессом с выводом цвет.
Я записал модуль Python для операций как это, назвал Макрополо. Но, это делает намного больше вещей, чем простое получение цвета пикселя на экране.
Вот сообщение форума, где я совместно использовал его: http://ubuntuforums.org/showthread.php?t=2155281
Модуль имеет много функций, которые позволяют Вам, например, считают сумму пикселей, которые имеют определенный цвет в области экрана, ищут пиксельный цвет в области, ожидают пикселя, или область экрана имеют определенный цвет, ожидают пиксельного цвета и выполняют некоторую другую функцию при ожидании (например, перемещают курсор для того, чтобы не позволять экрану выключить, в то время как Вы ожидаете определенного цвета).
Но, поскольку я сказал, это делает намного больше вещей, как моделирование щелчков мышью и клавиатуры, взятия снимка экрана области экрана и т.д.
Другое решение, с помощью xwd
и xdotool
:
xwd -root -silent | convert xwd:- -depth 8 -crop "1x1+$X+$Y" txt:- | grep -om1 '#\w\+'
где $X
и $Y
Ваши координаты.
Как часть Xorg xwd
должен прибыть предварительно установленный в Вашу систему. xdotool
может быть установлен с:
sudo apt-get install xdotool
На основе ответа @Christian на StackOverflow Вопросы и ответы и этот поток imagemagick.org.