Как сделать снимок экрана в Python с помощью лакея? - PullRequest
0 голосов
/ 31 августа 2018

Я хотел бы сделать снимок экрана с лакеем в идеале экрана приложения (но для начала, снимок экрана всего экрана будет в порядке).

Я пытался

from lackey import *

notepad = App('notepad.exe')
notepad.open()
focusWindow = notepad.focusedWindow()

s = Screen(0)
r = s.capture()
with open("toto.bmp", "wb") as f:
    f.write(r)

Картинка не может быть открыта, потому что функция capture возвращает numpy.ndarray.

Я также пытался сделать следующее, но результат тот же:

r = Screen.capture(focusWindow)

Кто-нибудь знает, как сделать скриншот?

Спасибо

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете использовать методы Image.fromarray и Image.save из библиотеки PIL для сохранения изображения. По какой-то причине приведенный ниже код захватывает окно, в котором выполняется скрипт, а также приложение блокнота, sp Я думаю, вам, возможно, придется его настроить.

from lackey import *
from PIL import Image

notepad = App('notepad.exe')
notepad.open()
focusWindow = notepad.focusedWindow()

sleep(5) # allow some time for the notepad window to appear before capture.

screen = Screen()
capture = screen.capture(focusWindow)

image = Image.fromarray(capture)
image.save("test.bmp")
notepad.close()
...