用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()

最新文章

  1. Java实现压缩与解压缩
  2. C# Azure 存储-Blob
  3. Unity3D 给模型偏移纹理
  4. How To Write In Sharepoint Log File 怎么对自定义的MOSS代码写日志
  5. PHP 输出表格单元格的数据之用表单的方式;
  6. HTML5中canvas的save和restore方法
  7. C++库大全(转)
  8. WinForm-利用Anchor和Dock属性缩放控件
  9. 旧书重温:0day2【2】 实验:三种获取kernel32.dll基址的方法
  10. JavaScript中伪协议 javascript:研究
  11. 基于AgileEAS.NET企业应用开发平台的分布式解决方案
  12. LINQ to Entities 不支持 LINQ 表达式节点类型“Invoke”
  13. O(1)检测2的幂次
  14. 基于OSGi的企业级快速开发平台(开源)
  15. springFramework 源码学习之源码下载与编译
  16. java的string.split()分割特殊字符时注意点
  17. C语言的字符串操作函数小结
  18. [bzoj1026][SCOI2009]windy数_数位dp
  19. Qt UI tips
  20. numpy.loadtxt()

热门文章

  1. Java——利用反射机制将表单数据自动填充到JavaBean中
  2. 非均匀B样条离散点的加密与平滑
  3. CountDownLatch用法实践
  4. Spliterator介绍
  5. Python基本语法_函数_参数的多类型传值
  6. 阶段3 2.Spring_09.JdbcTemplate的基本使用_3 JdbcTemplate在Dao中的使用
  7. 阶段3 2.Spring_04.Spring的常用注解_3 用于创建的Component注解
  8. 阶段3 2.Spring_03.Spring的 IOC 和 DI_7 spring中bean的细节之作用范围
  9. [译]深入 NGINX: 为性能和扩展所做之设计
  10. unity拖尾粒子问题