我想用 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)
有人知道如何制作屏幕截图吗?
谢谢
答案 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()