如何用Laughey在Python中捕获屏幕截图?

时间:2018-08-31 11:30:50

标签: python lackey

我想用 lackey 截屏,最好是一个应用程序的屏幕(但首先,可以截取整个屏幕的屏幕截图)。

我尝试过

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 :(得分:1)

您可以使用PIL库中的Image.fromarray和Image.save方法来保存图像。由于某些原因,下面的代码捕获了运行脚本以及记事本应用程序的窗口,我想您可能需要对其进行调整。

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