利用Python3编写一个电脑录屏神器

 更新时间:2022年08月19日 08:16:04   作者:Carl_奕然  
这篇文章主要为大家详细介绍了如何利用Python3编写一个简易的电脑录屏神器,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下

1、引言

女神:鱼哥,忙吗?

小鱼:嗯嗯, 忙, 哦不 , 不忙不忙。

女神:鱼哥,那能不能帮我个忙?

小鱼:这没问题啊这。

女神:你是认真说的吗?

小鱼:认真的啊,这还能不认真吗。

女神:说好了,不准反悔。

小鱼:我鱼愿意为你,牺牲睡觉的时间,做事情。

女神:鱼哥,你还帅哦。

小鱼:不要羡慕鱼哥, 鱼哥上学从来没在一班呆过。

女神:嗯嗯~ ~ 太哇塞了。

小鱼:说吧, 你有啥事需要我,该不会是…?

女神:想什么呢? 我我想录制一个视频,但是不知道用什么软件,能帮忙找一个吗?

小鱼:就这啊… 我还以为啥难事呢?

女神:那你的意思,可以帮忙了。

小鱼:必须的。

2、代码实战

2.1 编写思路

编写视频录制器, 我们需要以下步骤:

1、初始化变量,默认为True时,就是录制;

2、创建录制函数,用于进行视频录制;

3、创建键盘监听函数,如果按esc按键,就停止录制;

有了以上思路,我们就进行代码编写。

2.2 代码示例

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2022-08-10
# @Author : Carl_DJ

'''
制作视频录制器
实现功能:
1、倒计时开始进行录制
2、点击 键盘的 esc按键,就停止录制
3、打包成.exe, 直接点击就可以运行
'''
import cv2
from PIL import ImageGrab
import numpy as np
import datetime
from pynput import keyboard
import threading
from loguru import logger
import  time
import  os
# 初始化变量
is_running = True

'#创建录制过程生成的generate_video,用于生成录制视频'

def generate_video():
    '''
    生成录制视频
    :return:
    '''
    #当前时间戳为文件名字
    start_time = datetime.datetime.now().strftime('%Y-%m-%d %H%M%S')
    file_name = (start_time + '录制视频')
    # file_name= input("输入录制文件的名称")
    screen = ImageGrab.grab()
    width,height = screen.size
    fource = cv2.VideoWriter_fourcc(*'XVID')
    video = cv2.VideoWriter('%s.avi'% file_name,fource,20,(width,height))
    for n in range(3):
        logger.debug(str(3-n)+ '秒后开始录制')
        time.sleep(1)
    while True:
        im1 = ImageGrab.grab()
        im2 = cv2.cvtColor(np.array(im1),cv2.COLOR_RGBA2RGB)
        video.write(im2)
        if is_running is False:
            logger.debug('屏幕录制结束')
            break
    video.release()

'创建键盘监听函数 press_keyboard,监听输入,如果按下esc则改变运行状态'
# is_running = False #注释掉
def press_keyboard(key):
    '''
    键盘监听函数
    :param key:
    :return:
    '''
    global  is_running
    if key == keyboard.Key.esc:
        logger.debug('已按下ESC键,录制结束')
        is_running = False
        return False

if __name__ == '__main__':
    thread_ = threading.Thread(target=generate_video)
    thread_.start()
    logger.debug('开始进入录制视频')
    with keyboard.Listener(on_press = press_keyboard) as listener:
        listener.join()

3、总结

看到这里,今天的分享差不多就该结束了。

今天主要通过pynupt、PIL、numpy 库来介绍视频的录制及触发键盘的按键后,结束录制。

整体还算简单,但是针对初学者来说,还是有一点点的难度。

同时, 我也把代码封装成.exe应用,双击即可直接运行,

这里也说一下:

1、生成文件地址,与exe应用统计目录

2、生成文件名称:日期+时间戳+录制视频.avi

3、结束按键:esc

到此这篇关于利用Python3编写一个电脑录屏神器的文章就介绍到这了,更多相关Python电脑录屏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python模拟登录百度代码分享(获取百度贴吧等级)

    python模拟登录百度代码分享(获取百度贴吧等级)

    python模拟登录百度,实现了登录并读取百度关注贴吧列表,百度登录还是有点麻烦的,由于用的ssl,所以要先获取token,然后再登录,这个用finddle2分析下,还是比较好解决的
    2013-12-12
  • pandas初学者容易犯的六个错误总结

    pandas初学者容易犯的六个错误总结

    Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建,Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具,这篇文章主要给大家介绍了总结介绍了pandas初学者容易犯的六个错误,需要的朋友可以参考下
    2021-10-10
  • Python数据获取实现图片数据提取

    Python数据获取实现图片数据提取

    本文主要介绍了Python数据获取实现图片数据提取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 如何获取DataFrame值的索引以及其他

    如何获取DataFrame值的索引以及其他

    这篇文章主要介绍了如何获取DataFrame值的索引以及其他问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • anaconda3:conda not found报错问题解决

    anaconda3:conda not found报错问题解决

    这篇文章主要给大家介绍了关于anaconda3:conda not found报错问题解决的相关资料,Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项,需要的朋友可以参考下
    2023-10-10
  • python创建n行m列数组示例

    python创建n行m列数组示例

    今天小编就为大家分享一篇python创建n行m列数组示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python利用随机函数生成变化图形详解

    Python利用随机函数生成变化图形详解

    这篇文章主要介绍了如何在Python中利用随机函数生成变化的图形,文中的示例代码讲解详细,对我们学习有一定吧参考价值,需要的可以了解一下
    2022-04-04
  • Django 拆分model和view的实现方法

    Django 拆分model和view的实现方法

    今天小编就为大家分享一篇Django 拆分model和view的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python中的星号*还能这么用你知道吗

    Python中的星号*还能这么用你知道吗

    这篇文章主要为大家详细介绍了Python中的星号*用法的相关资料,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-06-06
  • 深入探究Python中的迭代器和生成器

    深入探究Python中的迭代器和生成器

    迭代器(Iterators)和生成器(Generators)是 Python 中最强大的功能之一,但也是新手最容易混淆的部分,本文将深入探讨这两种概念,以及它们在 Python 编程中的实际应用,需要的朋友可以参考下
    2023-06-06

最新评论