#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))