背景需求:
🧠思维启蒙 - 小红书注意力训练小分享-彩色划消 训练孩子的视觉辨别能力、视觉稳定性、注意力分配额能力👀 一起来试试吧~ #分享学习方法 #注意力训练 #专注力训练#天津 #亲子时光 #孩子成长 #思维启蒙 #数学思维启蒙 #早教启蒙 #数学启蒙这样做 #科学思维 #科学思维训练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 randompath = 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 = 0max_height = 0for 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 = marginmargin2 = (wides - h * max_height) // (h + 1)spacing2 = margin2# 绘制下方的 w * h 宫格grid_margin_top = heights-margin2 - h*max_height - margin2*(h-1)grid_margin_left = marginfor 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) # 使用宋体字体,字号70number_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")