【言语加码,为爱发声】

写在前面:部分图片来自网络,如需使用请注明出处,同时如有侵犯您的权益,请联系删除!

七夕来袭!你打算怎么给心爱的人表达爱意?鲜花礼物?如果话语太过肉麻而说不出口,欸,可千万不要错过! 有了它直接言语加码 !

言语加码

纸短情长,专业浪漫,值得拥有!

制作步骤/过程

乞巧佳节,总有说不完的话,谓之纸短情长。
情人眼里出西施,专属西施logo,值得拥有。
一键运行,一行情话,一键发送,共度佳节。

  • 为她准备专属祝福文字
  • 准备一张她的专属的logo
  • 运行代码

代码文件

import qrcode
import time
import os
import sys
from PIL import Image

#生成二维码
def gen_qrcode(string, logo, path):
    qr = qrcode.QRCode(
        version=5,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=10,
        border=4,
    )

    qr.add_data(string)
    qr.make(fit=True)
    img = qr.make_image(fill_color='pink', back_color='white')
    img = img.convert("RGBA")
    if logo and os.path.exists(logo):
        try:
            icon = Image.open(logo)
            img_w, img_h = img.size
        except Exception as e:
            print(e)
            sys.exit(1)

        size_w = int(img_w / 10)
        size_h = int(img_h / 10)
        icon = icon.resize((size_w, size_h), Image.ANTIALIAS)
        w = int((img_w-size_w)/2)
        h = int((img_h-size_h)/2)
        icon = icon.convert("RGBA")
        img.paste(icon, (w, h), icon)
    img.save(path)

#识别二维码
def QRCodeDetect(path):
    import cv2 as cv
    src_image = cv.imread(path)
    qrcoder = cv.QRCodeDetector()
    codeinfo, points, straight_qrcode = qrcoder.detectAndDecode(src_image)
    if codeinfo is None:
        print('解码失败')
    return codeinfo

if __name__ == '__main__':
    Strs = input('请输入文字以获取专属二维码:') 
    logo_path = r"./logo.jpg" # 专属logo
    gen_qrcode(Strs, logo_path, f"./Tanabata.png")
    encode = QRCodeDetect(f"./Tanabata.png")
    print(encode)

爱的turtle

也不知道财经的妹搞什么python代码,代码注释很详细。

制作过程

  • 准备一张专属的图像
  • 选择turtle图像清晰度
  • 运行代码

代码

import turtle
from PIL import Image

def get_color(r, g, b, phe):
    '''
    :param r: R
    :param g: G
    :param b: B
    :param phe: 透明通道
    :return: RGB值
    '''
    rr = r / 255.0
    bb = b / 255.0
    gg = g / 255.0

    # 归一化,大于1也置为一
    if rr > 1.0:
        rr = 1.0
    if bb > 1.0:
        bb = 1.0
    if gg > 1.0:
        gg = 1.0
    return rr, gg, bb


def draw(scale=2, pic_path=None):
    '''
    :param scale: 画笔大小
    :param w: 图的宽
    :param h: 图的高
    :return: None
    '''

    # 读取图片
    image = Image.open(pic_path)
    w, h = image.size
    WIDTH, HEIGHT = w//scale, h//scale
    image = image.resize((WIDTH, HEIGHT))

    # 开始绘制
    bob = turtle.Turtle()
    turtle.Screen().setup(WIDTH*scale, HEIGHT*scale, 10, 10)  # 画布的长宽,起点
    bob.speed(0)  # 画笔速度
    bob.pensize(scale)  # 画笔尺寸
    bob.ht()  # 隐藏箭头

    # 默认起点在画布中间,重新定位起点为左上角
    bob.penup()
    bob.fd(-WIDTH*scale//2)
    bob.seth(90)
    bob.fd(HEIGHT*scale//2)
    bob.seth(0)
    bob.pendown()

    # 不显示绘制过程以加速绘制
    turtle.tracer(False)
    for i in range(HEIGHT):  # 循环遍历原图像的每一个像素点并绘制出来
        for j in range(WIDTH):  # 绘制一行像素
            try:
                bob.pencolor(get_color(*image.getpixel((j, i)), None))
            except:
                bob.pencolor(get_color(*image.getpixel((j, i))))
            bob.fd(scale)
        #更新以显示单行绘制结果
        turtle.update()
        # 移动到下一行像素起点, 由于画笔尺寸,下一行起点需要下移对应尺寸大小
        bob.penup()
        bob.seth(-90)  # 下移
        bob.fd(scale)

        bob.seth(180)  # 下一行起点
        bob.fd(scale*WIDTH)

        bob.seth(0)  # 画笔方向,向右
        bob.pendown()

    # 结束后保持图像
    turtle.done()


if __name__ == '__main__':
    draw(scale=6, pic_path="1.png")

效果

这也是记录100万捐步的记录,希望大家在工作之余,献出自己的一点爱心。520不仅是为爱的人也要为需要帮助的那个陌生的她。

scale效果(依次是腾讯公益的公益项目、给小猫一个窝、给小女孩一本开启幻想的书)
1在这里插入图片描述
2在这里插入图片描述
5在这里插入图片描述
10在这里插入图片描述
100万捐步在这里插入图片描述

致谢

欲尽善本文,因所视短浅,怎奈所书皆是瞽言蒭议。行文至此,诚向予助与余者致以谢意。
(找不到了参考的博客了,如果看到一定加致谢和引用,特此说明)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值