回答:
プログラム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)"
して、bashスクリプトで実行します。もちろん、必要に応じてスクリプトを変更したり、エラー処理を追加したりする必要があります。
PS: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
およびを使用した別のソリューション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スレッド。
xwd
あなたは、ウィンドウのID(例を照会できるよう支持体は、特定のウィンドウIDのスクリーンショットを取るxdotool search --name "$Win" | head -n1
)し、その後にそれを渡すxwd
とxwd -id "$WinID" -silent | ...
。注:この場合、座標はウィンドウを基準とします。
Macropoloと呼ばれる、このような操作のためのpythonモジュールを作成しました。ただし、画面上のピクセルの色を取得するだけではありません。
これが私が共有したフォーラムの投稿です:http : //ubuntuforums.org/showthread.php?t=2155281
このモジュールには多くの機能があり、たとえば、画面の領域で特定の色を持つピクセルの数を数えたり、領域でピクセルの色を検索したり、ピクセルまたは画面の領域に特定の色が出るのを待つことができます。色、ピクセルの色を待ち、待ちながら他の機能を実行します(たとえば、特定の色を待つ間、画面をオフにしないためにカーソルを移動します)。
しかし、先ほど述べたように、マウスクリックやキーボードのシミュレーション、画面領域のスクリーンショットの取得など、多くのことを行います。