python 实现屏幕录制
2024-08-30 06:29:59
用python实现屏幕录制
PIL 即pollow 的安装命令如下:
pip install pillow
其中cv2的安装是下面这条命令
pip install opencv-python
代码实现:
# coding: utf-8
from PIL import ImageGrab
import numpy as np
import cv2
fps = 20
start = 3 # 延时录制
end = 15 # 自动结束时间
curScreen = ImageGrab.grab() # 获取屏幕对象
height, width = curScreen.size
video = cv2.VideoWriter('video02.avi', cv2.VideoWriter_fourcc(*'XVID'), fps, (height, width))
imageNum = 0
while True:
imageNum += 1
captureImage = ImageGrab.grab() # 抓取屏幕
frame = cv2.cvtColor(np.array(captureImage), cv2.COLOR_RGB2BGR)
# 显示无图像的窗口
cv2.imshow('capturing', np.zeros((1, 255), np.uint8))
# 控制窗口显示位置,方便通过按键方式退出
cv2.moveWindow('capturing', height - 100, width - 100)
if imageNum > fps * start:
video.write(frame)
# 退出条件
if cv2.waitKey(50) == ord('q') or imageNum > fps * end:
break
video.release()
cv2.destroyAllWindows()
最新文章
- Java实现压缩与解压缩
- C# Azure 存储-Blob
- Unity3D 给模型偏移纹理
- How To Write In Sharepoint Log File 怎么对自定义的MOSS代码写日志
- PHP 输出表格单元格的数据之用表单的方式;
- HTML5中canvas的save和restore方法
- C++库大全(转)
- WinForm-利用Anchor和Dock属性缩放控件
- 旧书重温:0day2【2】 实验:三种获取kernel32.dll基址的方法
- JavaScript中伪协议 javascript:研究
- 基于AgileEAS.NET企业应用开发平台的分布式解决方案
- LINQ to Entities 不支持 LINQ 表达式节点类型“Invoke”
- O(1)检测2的幂次
- 基于OSGi的企业级快速开发平台(开源)
- springFramework 源码学习之源码下载与编译
- java的string.split()分割特殊字符时注意点
- C语言的字符串操作函数小结
- [bzoj1026][SCOI2009]windy数_数位dp
- Qt UI tips
- numpy.loadtxt()
热门文章
- Java——利用反射机制将表单数据自动填充到JavaBean中
- 非均匀B样条离散点的加密与平滑
- CountDownLatch用法实践
- Spliterator介绍
- Python基本语法_函数_参数的多类型传值
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_3 JdbcTemplate在Dao中的使用
- 阶段3 2.Spring_04.Spring的常用注解_3 用于创建的Component注解
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_7 spring中bean的细节之作用范围
- [译]深入 NGINX: 为性能和扩展所做之设计
- unity拖尾粒子问题