使用ImageGrab的Python屏幕记录

2024-04-26 13:43:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了用python录制屏幕的代码,它在python3.5版本中无法正常工作。视频帧的大小在不断缩小。like this

import numpy as np
from PIL import ImageGrab
import cv2
import time


last_time = time.time()
while(True):
    # 800x600 windowed mode
    printscreen =  np.array(ImageGrab.grab(bbox=(0,0,800,600)))
    print('loop took {} seconds'.format(time.time()-last_time))
    last_time = time.time()
    cv2.imshow('window',cv2.cvtColor(printscreen, cv2.COLOR_BGR2RGB))

    if cv2.waitKey(25) & 0xFF == ord('q'):
        cv2.destroyAllWindows()
        break

Tags: 代码fromimport版本numpy视频pil屏幕
1条回答
网友
1楼 · 发布于 2024-04-26 13:43:59

这是意料之中的。当您使用cv2.imshow()时,它会在屏幕上显示一个窗口,这将再次在ImageGrab中捕获。因此,如果不显示图像而只将其保存为视频,则不会出现此问题。在

为了确保它能正常工作你可以这么做

printscreen =  np.array(ImageGrab.grab(bbox=(0,0,200,200)))

它将只捕获屏幕左上200 X 200像素。{3>这样的窗口在窗口的左上角没有拖动效果。在

相关问题 更多 >