利用Python编写简易的录制屏幕小工具

2022-08-01 10:12:51

目录1、准备2、代码由于最近测试需要录制系统界面的操作过程,因为都是全屏的操作,所以用python做一个简单的录屏小工具。实现过程也是比较简单,就是通过对屏幕操作进行不断的截图,最后将截图合成一个操作...

目录
1、准备
2、代码

由于最近测试需要录制系统界面的操作过程,因为都是全屏的操作,所以用python做一个简单的录屏小工具。

实现过程也是比较简单,就是通过对屏幕操作进行不断的截图,最后将截图合成一个操作视频的过程。由于我们只是做简单的截屏功能,并没有加入音频效果。

利用Python编写简易的录制屏幕小工具

1、准备

开始之前我们还是按照以往的方式介绍一下使用到的第三方的pypythonthon模块。

fromPILimportImageGrab

importnumpyasnp

importcv2

importdatetime

frompynputimportkeyboard

importthreading

fromloguruimportlogger

importtime

由于实现过程比较少,这里我们不再创建标准的class实现,直接在.py文件写相关的函数来实现。

2、代码

实现过程主要是通过两个函数来实现的,一个是实现具体的屏幕截图操作,并且将其写入视频。另一个则是用来监听键盘的输入,若是按下esc键时则退出当前的录制操作。

初始化一个变量作为停止标志。

is_running=True

创建录制过程生成函数generate_video,用以生成录制视频。

defgenerate_video():
'''
生成录制视频函数
:return:
'''
file_name=datetime.datetime.now().strftime('%Y-%m-%d%H-%M-%S')
screen=ImageGrab.grab()
width,height=screen.size
fourcc=cv2.VideoWriter_fourcc(*'XVID')
video=cv2.VideoWriter('%s.avi'%file_name,fourcc,20,(width,height))
forninrange(3):
logger.debug(str(3-n)+'秒后开始录制!')
time.sleep(1)
whileTrue:
im1=ImageGrab.grab()
im2=cv2.cvtColor(np.array(im1),cv2.COLOR_RGB2BGR)
video.write(im2)
ifis_runningisFalse:
logger.debug('屏幕录制已经结束!')
break
video.release()

创建键盘监听函数press_keyboard,监听输入,若是按下esc键则改变运行状态。

is_running=False
defpress_keyboard(key):
'''
键盘监听函数
:paramkey:
:return:
'''
globalis_running
ifkey==keyboard.Key.esc:
logger.debug('ESC已经被按下,马上结束录制!')
is_running=False
returnFalse

执行主函数main,启动则执行屏幕录制。

if__name__=='__main__':
thread_=threading.Thread(target=generate_video)
thread_.start()
logger.debug('开始进入视频录制!')
withkeyboard.Listener(on_press=press_keyboard)aslistener:
listener.join()

最后,使用pyinstaller将其打包成exe的可执行应用,使用时直接双击打开即可开始录制屏幕的操作过程。

pyinstaller-i.\video.ico-Fw.\test2.py

至此,录制屏幕小工具就大功告成了。

到此这篇关于利用Python编写简易的录制屏幕小工具的文章就介绍到这了,更多相关Python录制屏幕工具内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!