Как получить цвет пикселя в python максимально быстро? - PullRequest
0 голосов
/ 08 ноября 2019

Я нахожусь на Ubuntu и хочу каждые 0,1 с проверять цвет определенного пикселя на моем экране. Как я могу это сделать?

Я знаю о PIL, но для этого потребуется полный снимок экрана каждые 0,1 с только для одного пикселя.

Затем я нашел этот метод с помощью ctypes.windll: Более быстрый метод чтения пикселов экрана в Python, чем PIL?

Но это не сработает, потому что я не на Windows. Любая другая идея?

Редактировать: Решено благодаря b_c

from Xlib import display, X
from PIL import Image #PIL


def getColor(x,y):
    W, H = 1, 1
    dsp = display.Display()
    root = dsp.screen().root
    raw = root.get_image(x, y, W, H, X.ZPixmap, 0xffffffff)
    image = Image.frombytes("RGB", (W, H), raw.data, "raw", "BGRX")
    print image.getpixel((0, 0))
    time.sleep(0.01)

1 Ответ

3 голосов
/ 08 ноября 2019

PIL и другие подобные программы обычно позволяют вам указать граничную рамку для захвата меньших сумм

PyAutoGui позволяет вам брать меньшие секции

, как указано здесь https://pyautogui.readthedocs.io/en/latest/screenshot.html код такойпоскольку

pyautogui.screenshot(region=(0,0, 300, 400))

может быть полезным

https://pillow.readthedocs.io/en/4.2.x/reference/Image.html

также может быть полезным, bbox позволяет вам наблюдать только небольшую область.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...