Получить значение RGB из пикселей экрана с помощью python

#python #python-3.x #pixel

#python-3.x #python-imaging-library #rgb #пиксель

Вопрос:

Чтобы получить значения RGB из пикселя экрана с координатами (x, y) в Python, я делаю:

 import PIL.ImageGrab
rgb = PIL.ImageGrab.grab().load()[x,y]
  

Он работал так, как я ожидал, пока не сделал:

 rgb = PIL.ImageGrab.grab().load()[1673,0]
  

Вместо значений RGB пикселя я получил:

 IndexError: image index out of range
  

Я не понимаю, почему, потому что мой экран имеет разрешение 1920×1080.

Как я могу это исправить?

Ответ №1:

Если вы сделаете:

 import PIL.ImageGrab
PIL.ImageGrab.grab().size
  

Вы увидите разрешение, которое python обнаруживает в вашей системе. Если вы используете Windows, вам нужно перейти к конфигурации экрана, а затем изменить: размер текста, приложений и других элементов на 100%.

Если ваше разрешение равно 1920×1080, как вы сказали, это должно устранить проблему.

Комментарии:

1. Отличное решение 🙂

Ответ №2:

вы должны использовать модуль pyscreeze

 import pyscreeze
#the value of pixel whose value is to be get
x=23
y=23

#screen object
screen=pyscreeze.screenshot()

rgb_values=screen.getpixel((x,y))