Existe uma ferramenta de linha de comando que retorna o valor da cor de um pixel, com base unicamente nas coordenadas da tela .
Existe tal ferramenta?
(Além disso: a ferramenta não deve exigir nenhuma ação do usuário. É executada em loop em um script.)
command-line
mouse
colors
Peter.O
fonte
fonte
Respostas:
Você pode usar o programa grabc . Ele transformará o ponteiro do mouse em uma cruz e retornará os valores HTML e RGB da cor selecionada.
Desvantagem: não é possível fazer seleções exatas de pixel porque a mira não é fina o suficiente.
Você também pode criar um script python, algo como:
torne-o executável e execute
pixel_rgb="$(/path/to/script.py x y)"
em seu script bash. É claro que você precisaria alterar o script da maneira que precisava, adicionar algum tratamento de erro e assim por diante.PS: Não sei exatamente se você pode fazer algo sobre o DeprecationWarning, então eu o desliguei na primeira linha.
fonte
no module named numpy.core.multiarray; Segmentation fault
. Qual parte é dependente deste módulo?Isso é um pouco complicado, mas você pode conseguir isso com o xdotool, que permite interagir com o mouse, e o grabc, que obtém a cor de um local clicado na tela.
Primeira execução grabc, mas em segundo plano
Em seguida, execute um clique com o mouse usando o xdotool
O clique será capturado pelo cursor de grabc e o processo em segundo plano com a saída da cor.
fonte
xdotool getmouselocation | sed -e 's/x://' -e 's/y://' -e 's/ screen:.*$//'
vai pegar as cordas e limpá-las para espaçar valores xy separados para alimentar esse script.xdtool getmouselocation
... muito bom, obrigado ... a utilidade do sed continua me surpreendendo!Uma solução diferente, usando
xwd
exdotool
:Onde
$X
e$Y
suas coordenadas.Como parte do Xorg
xwd
deve vir pré-instalado no seu sistema.xdotool
pode ser instalado com:Baseado na resposta de @ Christian nas perguntas e respostas do StackOverflow e neste tópico do imagemagick.org .
fonte
xwd
suportes tirar screenshots de IDs de janela específicas, para que você possa consultar o ID janela (por exemploxdotool search --name "$Win" | head -n1
) e, em seguida, passá-lo paraxwd
comxwd -id "$WinID" -silent | ...
. Nota: neste caso, as coordenadas seriam relativas à janela.Eu escrevi um módulo python para operações como essa, chamado Macropolo. Mas, faz muito mais coisas do que simplesmente obter a cor de um pixel na tela.
Aqui está o post do fórum em que eu o compartilhei: http://ubuntuforums.org/showthread.php?t=2155281
O módulo possui muitas funções que permitem, por exemplo, contar a quantidade de pixels que possuem uma cor específica em uma área da tela, procurar cores de pixel em área, aguardar um pixel ou uma área da tela ter um tamanho específico. cor, aguarde a cor do pixel e execute alguma outra função enquanto aguarda (por exemplo, mova o cursor para não deixar a tela desligar enquanto você espera por uma cor específica).
Mas, como eu disse, ele faz muito mais coisas, como simular cliques do mouse e teclado, captura de tela da área da tela e muito mais.
fonte