Python实现定时自动截屏与摄像头截图功能

Chloe
Chloe
发布时间:2026-10-14 | 3人浏览过
原创

本文介绍两种Python实现自动截图的方法。首先利用PIL库的ImageGrab模块结合time模块,实现指定间隔自动截取屏幕并保存为PNG文件,包含自动创建目录的逻辑。其次展示使用OpenCV和threading模块,通过定时器实现摄像头画面每隔一秒自动截图保存,适合本地部署与AI数据采集场景。

Python定时截屏实现概述

写在前面

由于目前尚未确定具体的Python项目以提升技能,因此决定通过编写小型实用工具来加深对常用库及方法的理解。

方案分析

1、屏幕截图功能

实现截屏主要依赖pillow模块,核心代码仅需两行,具体见后续部分。

2、定时任务控制

为实现定时执行,需引入time模块处理时间逻辑。

3、文件保存机制

由于需要保存多张图片,需指定存储目录。此处将图片存放于根目录下的png文件夹中,并对目录是否存在进行检查处理。

基于PIL的屏幕自动截图方案

完整代码实现


# python3 author jin xiang
import time
from PIL import ImageGrab
import os

#这里是为了如果找不到png这个目录的情况自己建一个png目录
absPath = os.path.abspath('.')
path = [x for x in os.listdir('.') if os.path.isdir(x)]
# print(path)
if 'png' in path:
  #print('yes')
  pass
else:
 #print('no')
  #创建目录
  pngPath = os.path.join(absPath,'png')
  os.mkdir(pngPath)

#截屏
def Screenshot():
 nowtime = time.strftime('%Y_%m_%d_%H_%M_%S',time.localtime(time.time()))
 print(nowtime)
 # 截屏语句很简单的
  im = ImageGrab.grab()
  # 保存(图个有png路径或者别的路径需要在这个路径下有这个目录,不然报错,所以我前面是做了规避,没路径我就自己建一个)
  im.save(r'png\%s.png' %(nowtime))
while True:  
 print("截图!")
  Screenshot()

  print("暂停")
  print("\n")
  time.sleep(10) #定时10s看一下

运行效果

图片已成功保存至指定目录。

补充知识:基于Python OpenCV的定时器摄像头自动截图程序

以下直接展示核心代码实现。

基于OpenCV的摄像头自动截图方案


import threading
import cv2
global timer
import sys

def shot_img():
  global num
  success, frame = cameraCapture.read()
  path = "H://pythonr"
  cv2.imwrite( path +'a[num]' + '.jpg', frame)
  print(num)
  num += 1
  if num==10:
    cameraCapture.release()
    cv2.destroyAllWindows()
    sys.exit()
  timer = threading.Timer(1, shot_img)
  timer.start()

if __name__ == '__main__':
  num=0
  cameraCapture = cv2.VideoCapture(0)
  timer = threading.Timer(1,shot_img)
  timer.start()

以上关于Python定时截屏与摄像头截图的实现即为全部内容,供读者参考,欢迎支持。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表