Apakah ada alat baris perintah mengembalikan nilai warna piksel, hanya berdasarkan pada koordinat layarnya .
Apakah ada alat seperti itu?
(Juga: Alat ini tidak memerlukan tindakan pengguna apa pun. Alat ini dijalankan dalam satu lingkaran dalam skrip.)
command-line
mouse
colors
Peter.O
sumber
sumber
Jawaban:
Anda dapat menggunakan grabc program . Ini akan mengubah pointer mouse Anda menjadi crosshair dan mengembalikan nilai HTML dan RGB dari warna yang dipilih.
Kelemahannya: tidak mungkin untuk melakukan pemilihan tepat piksel karena crosshair tidak cukup tipis.
Anda juga dapat membuat skrip python, seperti:
buat itu bisa dieksekusi, dan jalankan
pixel_rgb="$(/path/to/script.py x y)"
di skrip bash Anda. Tentu saja Anda harus mengubah skrip seperti yang Anda butuhkan, menambahkan beberapa penanganan kesalahan, dan semacamnya.PS: Saya tidak yakin bisa melakukan apa-apa tentang DeprecationWarning, jadi saya mematikannya di baris pertama.
sumber
no module named numpy.core.multiarray; Segmentation fault
. Bagian mana yang tergantung pada modul ini?Ini agak tidak jelas, tetapi Anda dapat mencapainya dengan xdotool yang memungkinkan Anda berinteraksi dengan mouse, dan ambil yang mendapatkan warna dari lokasi yang diklik di layar.
Jalankan grabc pertama tetapi latar belakangnya
Kemudian lakukan mouseclick menggunakan xdotool
Klik akan ditangkap oleh kursor grabc dan proses latar belakang dengan menampilkan warna.
sumber
xdotool getmouselocation | sed -e 's/x://' -e 's/y://' -e 's/ screen:.*$//'
akan mengambil coord dan membersihkannya ke ruang xy nilai terpisah untuk memberi makan ke skrip itu.xdtool getmouselocation
... Anda sangat bagus, terima kasih ... kegunaan sed hanya membuat saya luar biasa!Solusi berbeda, menggunakan
xwd
danxdotool
:di mana
$X
dan$Y
adalah koordinat Anda.Sebagai bagian dari Xorg,
xwd
harus sudah diinstal sebelumnya di sistem Anda.xdotool
dapat diinstal dengan:Berdasarkan jawaban @ Christian pada Q&A StackOverflow dan utas imagemagick.org ini .
sumber
xwd
mendukung pengambilan tangkapan layar ID jendela tertentu, sehingga Anda dapat meminta ID jendela (mis.xdotool search --name "$Win" | head -n1
) lalu meneruskannyaxwd
denganxwd -id "$WinID" -silent | ...
. Catatan: koordinat akan relatif ke jendela dalam kasus ini.Saya telah menulis modul python untuk operasi seperti ini, yang disebut Macropolo. Tapi, ia melakukan lebih banyak hal daripada sekadar mendapatkan warna piksel di layar.
Inilah pos forum tempat saya membagikan: http://ubuntuforums.org/showthread.php?t=2155281
Modul ini memiliki banyak fungsi yang memungkinkan Anda untuk misalnya menghitung jumlah piksel yang memiliki warna tertentu di area layar, mencari warna piksel di area, menunggu piksel atau area layar memiliki area tertentu warna, tunggu warna piksel dan jalankan beberapa fungsi lain sambil menunggu (mis. pindahkan kursor untuk tidak membiarkan layar mati saat Anda sedang menunggu warna tertentu).
Tapi, seperti yang saya katakan, itu melakukan lebih banyak hal, seperti mensimulasikan klik mouse dan keyboard, mengambil screenshot dari area layar dan banyak lagi.
sumber