是否有命令行工具可以根据屏幕坐标返回像素的颜色?

Pet*_*r.O 11 mouse colors command-line

是否有命令行工具仅根据其屏幕坐标返回像素的颜色值。

有这样的工具吗?

(另外:该工具不应该需要任何用户操作。它是在脚本中循环运行。)

hto*_*que 14

您可以使用程序grapc。它会将鼠标指针转向十字准线并返回所选颜色的 HTML 和 RGB 值。

sudo apt-get install grabc
Run Code Online (Sandbox Code Playgroud)

缺点:由于十字准线不够细,无法进行像素精确选择。


您还可以创建一个 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]))
Run Code Online (Sandbox Code Playgroud)

使其可执行,并pixel_rgb="$(/path/to/script.py x y)"在您的 bash 脚本中运行。当然,您需要按照您需要的方式更改脚本,添加一些错误处理等。

PS:我不确定您是否可以对 DeprecationWarning 做任何事情,所以我在第一行将其关闭。


mis*_*ben 6

这有点笨拙,但您可以使用 xdotool 来实现这一点,它可以让您与鼠标交互,而grapc 可以从屏幕上单击的位置获取颜色。

sudo apt-get install xdotool grabc
Run Code Online (Sandbox Code Playgroud)

首先运行grapc但将其作为背景

grabc &
Run Code Online (Sandbox Code Playgroud)

然后使用 xdotool 执行鼠标单击

xdotool click 1
Run Code Online (Sandbox Code Playgroud)

点击将被grapc的光标和输出颜色的后台进程捕获。