背景需求:
🧠思维启蒙 - 小红书注意力训练小分享-彩色划消 训练孩子的视觉辨别能力、视觉稳定性、注意力分配额能力👀 一起来试试吧~ #分享学习方法 #注意力训练 #专注力训练#天津 #亲子时光 #孩子成长 #思维启蒙 #数学思维启蒙 #早教启蒙 #数学启蒙这样做 #科学思维 #科学思维训练https://www.xiaohongshu.com/explore/65d453e3000000000b01b410?app_platform=android&ignoreEngage=true&app_version=8.38.0&share_from_user_hidden=true&type=normal&author_share=1&xhsshare=WeixinSession&shareRedId=ODszMTs4Nk82NzUyOTgwNjg3OTlHS0xC&apptime=1717155047&share_id=e7197e0c6d5c46249e430a97557a445c
将以上样式复刻
代码展示
'''
彩色消除-注意力分享
作者:AI对话大师,阿夏
时间:2024年5月31日
'''
from PIL import Image, ImageDraw, ImageFont
import random
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\彩色划消'
for xx in range(10):
wides = 800 # 画布底边长度
heights = 900 # 画布高度长度
w = 14
# 数字的行的数量
h = 12
# 数字的列的数量
path = r'C:\Users\jg2yXRZ\OneDrive\桌面\彩色划消'
# 创建画布
canvas = Image.new("RGB", (wides, heights), (255, 255, 255))
draw = ImageDraw.Draw(canvas)
# 字体和数字颜色
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 50) # 使用宋体字体
number_colors = {3: "red", 8: "blue", 9: "green", 6: "purple"}
# 随机数字
numbers = [3, 8, 9, 6]
# 计算数字最大宽度和高度
max_width = 0
max_height = 0
for number in numbers:
width, height = draw.textsize(str(number), font=font)
max_width = max(max_width, width)
max_height = max(max_height, height)
# 边距和间距
margin = (wides - w * max_width) // (w + 1)
spacing = margin
margin2 = (wides - h * max_height) // (h + 1)
spacing2 = margin2
# 绘制下方的 w * h 宫格
grid_margin_top = heights-margin2 - h*max_height - margin2*(h-1)
grid_margin_left = margin
for i in range(h):
for j in range(w):
# 计算文字位置
x = grid_margin_left + j * (max_width + spacing)
y = grid_margin_top + i * (max_height + spacing2)
# 随机选择数字和颜色
number = random.choice(numbers)
color = number_colors[number]
# 写入文字
draw.text((x, y), str(number), fill=color, font=font)
# 左上角数字
# 字体和数字颜色
font = ImageFont.truetype(r'C:\Windows\Fonts\simhei.ttf', 70) # 使用宋体字体,字号70
number_color = 'black'
# 在指定位置写入数字
number = random.choice(numbers)
position = (10, 30)
# 写入文字
draw.text(position, str(number) + ' 共有___个,用时__分钟', fill=number_color, font=font)
# 保存图片
canvas.save(path + fr"\{xx}.png")