Есть ли в командной строке инструмент, возвращающий значение цвета пикселя, основываясь исключительно на его экранных координатах .
Есть ли такой инструмент?
(Также: инструмент не должен требовать каких-либо действий пользователя. Он должен выполняться в цикле в скрипте.)
command-line
mouse
colors
Peter.O
источник
источник
Ответы:
Вы можете использовать программу grabc . Он превратит указатель мыши в перекрестие и вернет значения HTML и RGB выбранного цвета.
Недостаток: невозможно сделать точный выбор пикселей, потому что перекрестие недостаточно тонкое.
Вы также можете создать скрипт на Python, что-то вроде:
сделайте его исполняемым и запустите его
pixel_rgb="$(/path/to/script.py x y)"
в своем скрипте bash. Конечно, вам нужно изменить скрипт так, как вам нужно, добавить обработку ошибок и тому подобное.PS: Я не совсем уверен, что вы можете сделать что-нибудь с DeprecationWarning, поэтому я отключил его в первой строке.
источник
no module named numpy.core.multiarray; Segmentation fault
. Какая часть зависит от этого модуля?Это немного неудобно, но вы можете достичь этого с помощью xdotool, который позволяет вам взаимодействовать с мышью, и grabc, который получает цвет из местоположения, щелкнувшего на экране.
Первый запуск grabc, но фон
Затем выполните щелчок мышью с помощью xdotool
Клик будет захвачен курсором grabc и фоновым процессом с выводом цвета.
источник
xdotool getmouselocation | sed -e 's/x://' -e 's/y://' -e 's/ screen:.*$//'
возьмет координаты и очистит их до разделенных пробелами значений xy для подачи в этот скрипт.xdtool getmouselocation
... очень милую, спасибо ... полезность Сэд просто удивляет меня!Другое решение, используя
xwd
иxdotool
:где
$X
и$Y
ваши координаты.В составе Xorg
xwd
должна быть предустановленная на вашей системе.xdotool
может быть установлен с:Основано на ответе @ Christian о вопросах и ответах StackOverflow и этой ветке imagemagick.org .
источник
xwd
поддерживает создание снимков экрана с определенными идентификаторами окон, поэтому вы можете запросить идентификатор окна (напримерxdotool search --name "$Win" | head -n1
), а затем передать его сxwd
помощьюxwd -id "$WinID" -silent | ...
. Примечание: координаты будут относительно окна в этом случае.Я написал модуль Python для таких операций, который называется Macropolo. Но он делает гораздо больше, чем просто получает цвет пикселя на экране.
Вот сообщение на форуме, где я им поделился: http://ubuntuforums.org/showthread.php?t=2155281
Модуль имеет много функций, которые позволяют, например, подсчитывать количество пикселей, которые имеют определенный цвет в области экрана, искать цвет (ы) пикселей в области, ждать, пока пиксель или область экрана имеют определенный color, дождитесь цвета пикселя и запустите другую функцию во время ожидания (например, переместите курсор, чтобы не дать экрану выключиться, пока вы ждете определенного цвета).
Но, как я уже сказал, он делает гораздо больше вещей, таких как имитация щелчков мыши и клавиатуры, снятие скриншотов с области экрана и многое другое.
источник