在 pyautogui 中保存热键截图

Save hotkey screenshot in pyautogui

我在 pyautogui 中使用热键截取了屏幕截图,因为这样我只能获得 window 内容。现在我似乎无法挽救它。是我做错了什么还是有什么办法可以截屏?

screenshot = pyautogui.hotkey('alt', 'printscreen')
screenshot.save('temp.jpg')

表达式 pyautogui.hotkey('alt', 'printscreen') 不返回任何内容,因此您无法从中保存图像。

我能找到的最简单的解决方案是安装一些额外的模块:

pip install pillow keyboard

模块keyboard用于创建更智能的热键,python函数作为回调。

这样的功能应该按Print Screen将图像保存到剪贴板,然后我们可以使用PIL模块从剪贴板获取图像并将其保存到文件。

示例如下:

import time

import pyautogui
import keyboard

from PIL import ImageGrab

def save_screenshoot():
    pyautogui.press('printscreen')
    im = ImageGrab.grabclipboard()
    im.save('screenshoot.png','PNG')

keyboard.add_hotkey('alt', save_screenshoot)

while True:
    # While this loop is active 'alt' wil save screenshoot
    time.sleep(5)