Существует ли инструмент командной строки, который возвращает цвет пикселя на основе экранных координат?

Есть ли инструмент командной строки, возвращает значение цвета пикселя, базирующегося только на его экранных координатах.

Есть ли такой инструмент?

(Также: инструмент не должен требовать никакого пользовательского действия. Это должно работать в цикле в сценарии.)

10
задан 8 December 2010 в 06:57

4 ответа

Можно использовать программу 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, таким образом, я выключил его в первой строке.

13
ответ дан 23 November 2019 в 04:21

Это - немного cludgy, но можно достигнуть этого с xdotool, который позволяет Вам взаимодействовать с мышью, и grabc, который получает цвет от местоположения, нажал на экран.

sudo apt-get install xdotool grabc

Первый показ grabc, но фон это

grabc &

Затем выполните щелчок мышью с помощью xdotool

xdotool click 1

Щелчок будет получен курсором grabc и фоновым процессом с выводом цвет.

5
ответ дан 23 November 2019 в 04:21

Я записал модуль Python для операций как это, назвал Макрополо. Но, это делает намного больше вещей, чем простое получение цвета пикселя на экране.

Вот сообщение форума, где я совместно использовал его: http://ubuntuforums.org/showthread.php?t=2155281

Модуль имеет много функций, которые позволяют Вам, например, считают сумму пикселей, которые имеют определенный цвет в области экрана, ищут пиксельный цвет в области, ожидают пикселя, или область экрана имеют определенный цвет, ожидают пиксельного цвета и выполняют некоторую другую функцию при ожидании (например, перемещают курсор для того, чтобы не позволять экрану выключить, в то время как Вы ожидаете определенного цвета).

Но, поскольку я сказал, это делает намного больше вещей, как моделирование щелчков мышью и клавиатуры, взятия снимка экрана области экрана и т.д.

2
ответ дан 23 November 2019 в 04:21

Другое решение, с помощью 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.

2
ответ дан 23 November 2019 в 04:21

Другие вопросы по тегам:

Похожие вопросы: