¿Existe una herramienta de línea de comando que devuelve el valor de color de un píxel, basado únicamente en sus coordenadas de pantalla ?
¿Existe tal herramienta?
(Además: la herramienta no debe requerir ninguna acción del usuario. Se debe ejecutar en un bucle en un script).
command-line
mouse
colors
Peter.O
fuente
fuente
Respuestas:
Puedes usar el programa grabc . Girará el puntero del mouse en forma de cruz y devolverá los valores HTML y RGB del color seleccionado.
Desventaja: no es posible hacer selecciones exactas de píxeles debido a que la retícula no es lo suficientemente delgada.
También puede crear un script de Python, algo como:
hazlo ejecutable y ejecútalo
pixel_rgb="$(/path/to/script.py x y)"
en tu script bash. Por supuesto, necesitaría alterar el script de la forma en que lo necesita, agregar algo de manejo de errores y demás.PD: No estoy exactamente seguro de que pueda hacer algo con respecto a DeprecationWarning, así que lo desactivé en la primera línea.
fuente
no module named numpy.core.multiarray; Segmentation fault
. ¿Qué parte depende de este módulo?Esto es un poco confuso, pero puede lograrlo con xdotool, que le permite interactuar con el mouse, y grabc, que obtiene el color de una ubicación en la que se hace clic en la pantalla.
Primero ejecuta grabc pero en segundo plano
Luego realice un clic con el mouse usando xdotool
El clic será capturado por el cursor de grabc y el proceso de fondo con salida del color.
fuente
xdotool getmouselocation | sed -e 's/x://' -e 's/y://' -e 's/ screen:.*$//'
tomará las coordenadas y las limpiará a valores xy separados por espacios para alimentar ese script.xdtool getmouselocation
... muy agradable, gracias ... ¡la utilidad de sed me sigue sorprendiendo!Una solución diferente, usando
xwd
yxdotool
:donde
$X
y$Y
son tus coordenadas.Como parte de Xorg,
xwd
debe venir preinstalado en su sistema.xdotool
se puede instalar con:Basado en la respuesta de @ Christian en un StackOverflow Q&A y este hilo de imagemagick.org .
fuente
xwd
soportes realizar capturas de pantalla de ID de ventanas específicas, por lo que podría consultar el identificador de ventana (por ejemploxdotool search --name "$Win" | head -n1
) y luego pasarlo axwd
laxwd -id "$WinID" -silent | ...
. Nota: las coordenadas serían relativas a la ventana en este caso.He escrito un módulo de Python para operaciones como esta, llamado Macropolo. Pero, hace muchas más cosas que simplemente obtener el color de un píxel en la pantalla.
Aquí está la publicación del foro donde la he compartido: http://ubuntuforums.org/showthread.php?t=2155281
El módulo tiene muchas funciones que le permiten, por ejemplo, contar la cantidad de píxeles que tienen un color específico en un área de la pantalla, buscar colores de píxeles en el área, esperar un píxel o un área de la pantalla que tenga un color específico. color, espere el color del píxel y ejecute alguna otra función mientras espera (por ejemplo, mueva el cursor para no dejar que la pantalla se apague mientras espera un color específico).
Pero, como dije, hace muchas más cosas, como simular clics del mouse y el teclado, captura de pantalla del área de la pantalla y más.
fuente