screen coordinatesのみに基づいて、ピクセルのカラー値を返すコマンドラインツールはありますか?.
そのようなツールはありますか?
(また、このツールはユーザーのアクションを必要としません。スクリプトのループで実行することです。)
プログラム 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]))
実行可能にし、bashスクリプトでpixel_rgb="$(/path/to/script.py x y)"
を実行します。もちろん、スクリプトを必要に応じて変更したり、エラー処理を追加したりする必要があります。
PS:DeprecationWarningについて何ができるのか正確にはわからないので、最初の行でオフにしました。
これは少しぎこちないですが、マウスで操作できるxdotoolと、画面でクリックした場所から色を取得するgrabcでこれを実現できます。
Sudo apt-get install xdotool grabc
最初にgrabcを実行しますが、バックグラウンドで実行します
grabc &
次に、xdotoolを使用してマウスクリックを実行します
xdotool click 1
クリックはgrabcのカーソルによってキャプチャされ、バックグラウンドプロセスは色を出力します。
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
@Christianの StackOverflowのQ&Aに関する回答 および このimagemagick.orgスレッド に基づきます。
Macropoloと呼ばれる、このような操作用のpythonモジュールを作成しました。しかし、画面上のピクセルの色を取得するだけではありません。
ここに私がそれを共有したフォーラム投稿があります: http://ubuntuforums.org/showthread.php?t=2155281
モジュールには、たとえば画面の領域内の特定の色を持つピクセルの数をカウントし、領域内のピクセルの色を検索し、画面のピクセルまたは領域が特定の色を持つのを待ち、ピクセルの色を待ち、他の何かを実行する待機中の機能(たとえば、特定の色を待機しているときに画面をオフにしないためにカーソルを移動します)。
しかし、私が言ったように、マウスクリックやキーボードのシミュレーション、スクリーンの面積のスクリーンショット撮影など、もっと多くのことをします。