❤️另类工作照|工作中用Python自拍后回传到邮箱!❤️
Posted 二哥不像程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了❤️另类工作照|工作中用Python自拍后回传到邮箱!❤️相关的知识,希望对你有一定的参考价值。
今天二哥突发奇想,想尝试使用Python来调用摄像头自拍并截屏回传到邮箱中保存,来记录下自己工作的桌面和工作的状态,本文我们一起来了解一下。
老规矩!先点个赞吧…
一、开启摄像头
使用cv2(opencv)可以很轻松的达到开启摄像头的效果,开启摄像头的代码如下所示:
import cv2
# 参数0表示内置摄像头,1表示其他
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
# 开启摄像头
cv2.imshow('cv window', frame)
# 持续一段时间(可以增大)
cv2.waitKey(1000)
cap.release()
cv2.destroyAllWindows()
# 防止窗口卡死
cv2.waitKey(1)
二、截取屏幕
开启了摄像头之后,我们可以使用pyautogui来快速的对屏幕进行截屏。
截屏代码如下所示:
import pyautogui
# 截取屏幕
img = pyautogui.screenshot()
img.save('screenshot.png')
三、发送邮件
在email库中提供了发送带图片邮件的方法,发送邮件的代码如下:
# 用于构造带图片的邮件
from email.mime.multipart import MIMEMultipart
# 用于封装附件
from email.mime.application import MIMEApplication
import smtplib
# 给定发送者邮箱
from_addr = 'your_email@xxx.com'
# 给定发送者密码
password = 'your_password'
# 给定SMTP服务器地址
smtp_server = 'your_server'
# 给定收件人地址
to_addr = 'send_email@xxx.com'
msg = MIMEMultipart()
part = MIMEApplication(open('screenshot.png', 'rb').read())
msg.attach(part)
server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25
# server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
这里我们需要填入邮箱的账号、密码、服务器地址、发送账号四种信息,对于账号来说,我们填入普通的邮箱即可,而这里的密码不是我们注册时用的密码,而是一个独立的从服务器发送所需的密码,这里以qq为例,看一下如何获取密码。
- 如图所示先点击设置,再点击账户。
- 下拉找到服务器选项,开启第一个选项即可。
开启后即可获取到密码了。
对于STMP服务器地址,我们使用的哪个邮箱就查找哪个邮箱的地址即可,例如QQ邮箱地址:smtp.qq.com
注意,邮箱收到的照片需要将后缀改成.png、.jpg等图像格式。
四、打包程序
我们可以使用pyinstaller脚本来将代码打包成exe文件,注意需要使用win系统,打包方式如下:
- 安装pyinstaller:
pip install pyinstaller
- 进入程序所在目录
- 使用命令打包文件:
pyinstaller -F xxx.py
(xxx.py,打包的文件) - 去新生成的dist文件夹下找到exe文件
打包完成之后,点击运行就可以了。
完整的代码如下所示:
import cv2
import pyautogui
# 用于构造带图片的邮件
from email.mime.multipart import MIMEMultipart
# 用于封装附件
from email.mime.application import MIMEApplication
import smtplib
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
cv2.imshow('cv window', frame)
# 按q退出程序
cv2.waitKey(1000)
# 截取屏幕
img = pyautogui.screenshot()
img.save('screenshot.png')
cap.release()
cv2.destroyAllWindows()
# 防止窗口卡死
cv2.waitKey(1)
# 给定发送者邮箱
from_addr = 'your_email@xxx.com'
# 给定发送者密码
password = 'your_password'
# 给定SMTP服务器地址
smtp_server = 'your_server'
# 给定收件人地址
to_addr = 'send_email@xxx.com'
msg = MIMEMultipart()
part = MIMEApplication(open('screenshot.png', 'rb').read())
msg.attach(part)
server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25
# server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
❤️创作不易,点个赞吧❤️ |
以上是关于❤️另类工作照|工作中用Python自拍后回传到邮箱!❤️的主要内容,如果未能解决你的问题,请参考以下文章
昨晚,我用python帮隔壁小姐姐P证件照 自拍,然后发现。。。
昨晚,我用python帮隔壁小姐姐P证件照 自拍,然后发现。。。
❤️Python实用工具之制作证件照(有界面附源码赞关藏)❤️