답변:
grabc 프로그램을 사용할 수 있습니다 . 마우스 포인터를 십자형으로 돌리고 선택한 색상의 HTML 및 RGB 값을 반환합니다.
sudo apt-get install grabc
단점 : 십자선이 충분히 얇지 않아 픽셀을 정확하게 선택할 수 없습니다.
다음과 같은 파이썬 스크립트를 만들 수도 있습니다.
#!/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)"
bash 스크립트에서 실행 하십시오. 물론 스크립트를 원하는 방식으로 변경하고 오류 처리 등을 추가해야합니다.
추신 : DeprecationWarning에 대해 무엇이든 할 수 있는지 확실하지 않으므로 첫 번째 줄에서 해제했습니다.
no module named numpy.core.multiarray; Segmentation fault
. 어느 부분이이 모듈에 의존합니까?
약간 어색하지만 xdotool을 사용하면 마우스와 상호 작용할 수 있고 grabc는 화면에서 클릭 한 위치에서 색상을 얻을 수 있습니다.
sudo apt-get install xdotool grabc
grabc를 먼저 실행하지만 배경
grabc &
그런 다음 xdotool을 사용하여 마우스 클릭을 수행하십시오.
xdotool click 1
클릭은 grabc의 커서와 배경 프로세스가 색상을 출력하여 캡처됩니다.
xdotool getmouselocation | sed -e 's/x://' -e 's/y://' -e 's/ screen:.*$//'
좌표를 잡고 공백으로 구분 된 xy 값으로 정리하여 해당 스크립트에 공급합니다.
xdtool getmouselocation
... 아주 좋은, 감사합니다 ... sed의 유용성은 나를 놀라게 유지!
xwd
and를 사용하는 다른 솔루션 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
StackOverflow Q & A 및 이 imagemagick.org 스레드 에 대한 @Christian 의 답변을 기반으로 합니다 .
xwd
특정 창 ID의 스크린 샷 찍기를 지원하므로 창 ID (예 :)를 쿼리 xdotool search --name "$Win" | head -n1
한 다음로 전달할 수 xwd
있습니다 xwd -id "$WinID" -silent | ...
. 참고 :이 경우 좌표는 창을 기준으로합니다.
Macropolo라는 이와 같은 작업을 위해 Python 모듈을 작성했습니다. 그러나 단순히 화면에서 픽셀의 색상을 얻는 것보다 훨씬 더 많은 일을합니다.
내가 공유 한 포럼 게시물은 다음과 같습니다. http://ubuntuforums.org/showthread.php?t=2155281
이 모듈에는 화면 영역에서 특정 색상의 픽셀 수를 계산하고, 영역에서 픽셀 색상을 검색하고, 픽셀 또는 화면 영역에서 특정 픽셀이있을 때까지 기다릴 수있는 많은 기능이 있습니다. 컬러, 픽셀 컬러를 기다렸다가 기다리는 동안 다른 기능을 실행하십시오 (예 : 특정 컬러를 기다리는 동안 화면이 꺼지지 않도록 커서를 이동하십시오).
그러나 내가 말했듯이 마우스 클릭과 키보드 시뮬레이션, 스크린 영역의 스크린 샷 찍기 등과 같은 훨씬 더 많은 일을합니다.