如何用python录制屏幕?
1、这里我使用pycharm,大家也可以用其他的python编辑器。我们先创建test0.py文件。

2、安装必需的库:pillow,opencv-python和numpy。它们分别有不同的作用。
自带库time,用于定时录制。

3、Pillow库的使用:
pillow是python中用于处理图像的库,在此次录屏中起到获取屏幕信息的作用
from PIL import ImageGrab
screen=PIL.ImageGrab.grab() ->将屏幕赋给对象
widh,high=screen.size ->获取屏幕的高和宽
opencv-python库的使用:
fourcc=cv2.VideoWriter_fourcc(*'XVID') ->配置好视频编解码器
XVID:MPEG-4视频编解码器
fps=5 ->帧率设置为5
video=cv2.VideoWriter('跳舞.avi',fourcc,fps,(widh,high)) ->创建视频对象
video.write() ->写入视频
cv2.namedWindow('窗口名', 0) ->使窗口可变
cv2.resizeWindow('窗口名', 0, 0) ->改变窗口大小为最小
cv2.imshow('jump',0) ->展示窗口
cv2.waitKey(时间) ->时间取0,表示永远等待,100代表以100ms为周期等待
cv2.cvtColor(np.array(capture), cv2.COLOR_RGB2BGR) ->将图片数组从BGR格式转换成RGB格式
time库的使用:
second=3 ->等待时间
time.sleep(3) ->等待3秒钟
numpy库的使用:
import numpy as np
np.array('图片') ->处理图片数组

4、编写程序
fps =5
screen=ImageGrab.grab()
widh,high=screen.size
fourcc=cv2.VideoWriter_fourcc(*'XVID')
video=cv2.VideoWriter('jump.avi', fourcc, fps,(widh,high))
time.sleep(3) #有时间缓冲
while True :
capture = ImageGrab.grab()
image = cv2.cvtColor(np.array(capture), cv2.COLOR_RGB2BGR)
video.write(image)
cv2.namedWindow('jump', 0)
cv2.resizeWindow('jump', 0, 0)
cv2.imshow('jump',0)
if cv2.waitKey(100) & 0xFF == ord('q'):
#这里的& 0xFF代表取最低八位,也就是一个字节
break#退出循环
video.release() #一定不要忘,闭合视频
cv2.destroyAllWindows()#销毁窗口

5、运行结果
左上角会出现一个黑色窗口,表示开始录制。点击窗口敲击“Q”,就会退出录制,视频保存在指定目录下。


6、如果希望更加完美的话,可以尝试用线程+pynput完善程序。