ImageGrab / pyscreenshot не захватывает весь экран, если OS-фактор применяет масштабирование - PullRequest
0 голосов
/ 26 апреля 2019

Я развлекался ради ImageGrab и заметил, что если вы установили пользовательский коэффициент масштабирования в своей ОС, если вы захватите полноэкранное изображение, часть снимка будет черной,

Например, в моем ноутбуке у меня разрешение 1920x1080, и я установил 140% -ое увеличение в Win10.Если я возьму полноэкранный режим, вот результат:
enter image description here

, с другой стороны, когда масштабирование ОС по умолчанию установлено на t0 100%, это правильный полноэкранный режим: enter image description here

Код, который я использую, очень прост, я покажу его только для полноты:

from PIL import ImageGrab as ig
from pynput.mouse import Button, Controller
from pynput.keyboard import Key
from pynput import keyboard

def onpress(k):
    if k == keyboard.Key.esc:
        # break if esc is pressed
        return False
    else:
        img= ig.grab()
        img.save('screenshot.png')

with keyboard.Listener( on_press= onpress) as listener:
    listener.join()

Я заметил, регистрируя положение мыши, чтокогда на экране установлено увеличение 140%, границы составляют примерно 0,0 - 1374,738.

1 Ответ

0 голосов
/ 11 мая 2019

Нашел решение на потоке Github . Это связано с разрешением экрана моего ноутбука.

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