写在前面:部分图片来自网络,如需使用请注明出处,同时如有侵犯您的权益,请联系删除!
七夕来袭!你打算怎么给心爱的人表达爱意?鲜花礼物?如果话语太过肉麻而说不出口,欸,可千万不要错过! 有了它直接言语加码 !
言语加码
纸短情长,专业浪漫,值得拥有!
制作步骤/过程
乞巧佳节,总有说不完的话,谓之纸短情长。
情人眼里出西施,专属西施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万捐步 | |
致谢
欲尽善本文,因所视短浅,怎奈所书皆是瞽言蒭议。行文至此,诚向予助与余者致以谢意。
(找不到了参考的博客了,如果看到一定加致谢和引用,特此说明)。