您的位置首页生活百科

如何用python录制屏幕

如何用python录制屏幕

的有关信息介绍如下:

如何用python录制屏幕

火爆全球的python编程语言由于它的简便性和丰富的库而著名,接下来01教给大家如何用python来录制屏幕(桌面)。

这里我使用pycharm,大家也可以用其他的python编辑器。我们先创建test0.py文件。

安装必需的库:pillow,opencv-python和numpy。它们分别有不同的作用。

自带库time,用于定时录制。

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('图片') ->处理图片数组

编写程序

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()#销毁窗口

运行结果

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

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