TomasHuk
@TomasHuk

Как сделать скриншот с заданием координат мышью с помощью python?

Использую PIL, python 3.3, Win7.
Пока делаю это так:
img = ImageGrab.grab( (x1, y1, x2, y2) )
Вопрос следующий, как задать координаты мышью, а не вручную прописывать в скрипте? Т.е. при работе скрипта появился запрос "Выберите область", я указываю левый верхний и правый нижний угол необходимой области, скрипт делает скриншот этой части.

А еще лучше, чтобы можно было протянуть мышью, как бы рамкой выделить область. Подозреваю, что можно как-то отследить координаты нажатия левой кнопки мыши, а потом координаты ее отпускания.
Какие модули подключить, что почитать? Может, кто-то пример набросает, буду благодарен.
  • Вопрос задан
  • 4649 просмотров
Решения вопроса 1
TomasHuk
@TomasHuk Автор вопроса
Сделал плохо (я только учусь), но работает. Определяю координаты без клика, простым наведением курсора с задержкой по времени в 3 с, чтобы успеть переместить мышь.
from PIL import Image, ImageGrab
import win32api, time

#задаем координаты прямоугольника скриншота
def get_coordinates():
    #задаем верхний левый угол
    time.sleep(3)
    x0, y0=win32api.GetCursorPos()
    #задаем правый нижний угол
    time.sleep(3)
    x_max, y_max=win32api.GetCursorPos()
    return(x0,y0,x_max,y_max)

def main():
    x0,y0,x_max,y_max=get_coordinates()
    img = ImageGrab.grab((x0, y0, x_max, y_max))
    img.save(("01.png"), "PNG")

if __name__=='__main__':
    main()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы