【教学类-34-05】20230523学号拼图(数字学号0X-长方块拼图-双色深灰浅灰)3*3格子(中班主题《个别化拼图》偏艺术-美术)
作品展示背景需求难点如何让生成图片带两个颜色的数字上一次”学号拼图3*3“学习活动中发现03、04、05、06、08、09 、23、26、28拼图都有困境教师帮助。十位数字都包含多个圆弧结构幼儿对于大量的圆弧碎片图形的多重组合2个数字都是圆弧结构感到茫然没有黏贴。最后是教师指点后或者正确摆放后幼儿才黏贴上去。这条圆弧和这条圆弧能拼在一起但实际并不是正确位置因此笔者希望将学号的两个数字用不同灰度颜色表示办公室打印机没有彩色墨水十位数的数字用深灰色个位数的数字用浅灰色有明显区分。难点如何让生成图片带两个颜色的数字参考CSDN修改代码实现需求1、仿抖音短视频系统源码制作彩色验证码_云豹网络科技的博客-CSDN博客2、用python实现生成验证码图片_python生成验证码图片_心系五道口的博客-CSDN博客代码设置 目的:学号拼图的两个数字颜色不同(深灰\浅灰) 作者:阿夏 日期:2023年05月23日22:17 import random import string from random import choice, randint, randrange from PIL import Image, ImageDraw, ImageFont colour1int(input(十位数的数字的颜色100深灰)\n)) colour2int(input(个位数的数字的颜色170中灰)\n)) # 28个学号 num[] for x in range(1,29): num.append(%02d%x) print(num) # 循环28张图片 n1 for x in range(len(num)): # 读取num里面的每个数字 res1{}.format(num[x]) print(res1) # 25 # 26 # 27 # 28 # 图片大小、数字数量坐标用 背景色 size[600,400] # 图片大小 characterNumber2 # 几个数字随机抽取2个数字 bgcolor(255,255,255) # 背景颜色 白色 imageTemp Image.new(RGB, size, bgcolor) draw ImageDraw.Draw(imageTemp) # text selectedCharacters(characterNumber) # 文字格式 text res1 font ImageFont.truetype(c:\\windows\\fonts\\arial.TTF, 350) width, height draw.textsize(text, font) # # 随机字符位置(确保数字在中心) startX -90 widthEachCharater width//characterNumber a[colour1,colour2] # 深灰、中灰 for i in range(characterNumber): startX widthEachCharater 1 # position (startX, (size[1]-height)//2randint(-5,5)) position (startX,(size[1]-height)//7) gbra[i] # 第1个数字 RGB色等于深灰# 第2个数字 RGB色等于终会 draw.text(xyposition, texttext[i], fontfont, fill (r,g,b)) # 填充色彩 # 对像素位置进行微调实现扭曲的效果 imageFinal Image.new(RGB, size, bgcolor) pixelsFinal imageFinal.load() pixelsTemp imageTemp.load() for y in range(size[1]): offset randint(-1,0) for x in range(size[0]): newx xoffset if newxsize[0]: newx size[0]-1 elif newx0: newx 0 pixelsFinal[newx,y] pixelsTemp[x,y] imageFinal.save(rC:\Users\jg2yXRZ\OneDrive\桌面\彩色数字\学号{}.jpg.format(%02d%n)) n1不同灰度的效果第1个数字RGB100 100 100第2个数字RGB170 170 170感悟在无法使用彩色打印基础上制作不同灰度的数字、文字、图案提升幼儿拼图的效率直接生成学号拼图的代码-全部代码1、路径预先建立一下文件夹和word模板2、word模板的格式word模板的格式二维码下载3、三个文件夹做好内部空也可以在代码里写个自动新建文件夹4、全部代码随机打乱-生成 华文彩云 字体 项目学号数字矢量图的3*3格拼图 1页两份 横版 作者阿夏 日期2023年4月20日21:47 numint(input(生成多少人(28人)\n)) Numberint(input(随机抽取几个图片9个\n)) print(----------第1步19张大写字母PNG图片*每张图片切割12张----------------) # 源代码 https://blog.csdn.net/qq_34777982/article/details/125019068?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-125019068-blog-129622294.235^v29^pc_relevant_default_base3spm1001.2101.3001.4242.2utm_relevant_index4 # Python 裁剪九宫格图片 —— 筑梦之路 import sys import os import random import string from random import choice, randint, randrange from PIL import Image, ImageDraw, ImageFont # 生成两位数学号 xh[] for i in range(1,num1): xh.append(%02d%i) print(xh) # [01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28] colour1int(input(十位数的数字的颜色100深灰)\n)) colour2int(input(个位数的数字的颜色170中灰)\n)) # 28个学号 # 循环28张图片 n0 for x in range(len(xh)): # 读取num里面的每个数字 res1{}.format(xh[x]) print(res1) # 25 # 26 # 27 # 28 # 图片大小、数字数量坐标用 背景色 size[600,402] # 图片大小 characterNumber2 # 几个数字随机抽取2个数字 bgcolor(255,255,255) # 背景颜色 白色 imageTemp Image.new(RGB, size, bgcolor) draw ImageDraw.Draw(imageTemp) # text selectedCharacters(characterNumber) # 文字格式 text res1 font ImageFont.truetype(c:\\windows\\fonts\\STHUPO.TTF, 350) # 华文琥珀 # font ImageFont.truetype(c:\\windows\\fonts\\msyhbd.TTC, 350) # 微软雅黑 width, height draw.textsize(text, font) # # 随机字符位置(确保数字在中心) # 华文琥珀的序号 # startX -105 # widthEachCharater width//characterNumber # 微软雅黑 startX -100 widthEachCharater width//characterNumber a[colour1,colour2] # 深灰、中灰 for i in range(characterNumber): startX widthEachCharater 1 # position (startX, (size[1]-height)//2randint(-5,5)) position (startX,(size[1]-height)//3) gbra[i] # 第1个数字 RGB色等于深灰# 第2个数字 RGB色等于终会 draw.text(xyposition, texttext[i], fontfont, fill (r,g,b)) # 填充色彩 # 对像素位置进行微调实现扭曲的效果 imageFinal Image.new(RGB, size, bgcolor) pixelsFinal imageFinal.load() pixelsTemp imageTemp.load() for y in range(size[1]): offset randint(-1,0) for x in range(size[0]): newx xoffset if newxsize[0]: newx size[0]-1 elif newx0: newx 0 pixelsFinal[newx,y] pixelsTemp[x,y] imageFinal.save(rC:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\学号数字拼图0\{}.jpg.format(%02d%(n1))) n1 # 批量调整图片的大小 # 生成0里面的图片大小# 1146 # 687 改成600*400 from PIL import Image import os # 原始文件夹路径 original_folder C:/Users/jg2yXRZ/OneDrive/桌面/学号数字拼图/学号数字拼图0 # 保存的新文件夹路径 new_folder C:/Users/jg2yXRZ/OneDrive/桌面/学号数字拼图/学号数字拼图 # 遍历原始文件夹中的图像 for filename in os.listdir(original_folder): img Image.open(os.path.join(original_folder, filename)) # 改变尺寸 img_resized img.resize((600, 402)) #这里是你要转换的尺寸 两个数字能被3整除 # 保存到新文件夹 img_resized.save(os.path.join(new_folder, filename)) file_root rC:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\学号数字拼图 #要切的图片放的文件 fileList [] n 0 #读取文件列表 def read_bmp_file_list(path): for root, dirs, files in os.walk(path, topdownFalse): for file in files: fileList.append(os.path.join(root, file)) #开始切图 9格 def qie_tu(file_path): global n im Image.open(file_path) # 图片的宽度和高度原始图片大小1280 720 img_size im.size print(小图片宽度和高度分别是{}.format(img_size)) #切成512X512 x 0 y 0 w 200 # 列几条600/3 h 134 # 行几条402/3 for j in range(0,3): for i in range(0,3): #region im.crop((x, y, xw*i, yh*j)) print(xw*i, yh*j,xw*iw, yh*jh) region im.crop((xw*i, yh*j,xw*iw, yh*jh)) #文件输出位置 region.save(rC:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\学号数字拼图1\{name}.jpg.format(name%03d%n)) nn1 if __name__ __main__: read_bmp_file_list(file_root) for f in fileList: qie_tu(f) # print(----------第2步读取图片,写入模板----------------) import os from PIL import Image print(----------第1步提取图片路径------------) path[] prC:\\Users\\jg2yXRZ\\OneDrive\\桌面\\学号数字拼图\\学号数字拼图1 # 过滤只保留png结尾的图片 imgs1os.listdir(pr) for img1 in imgs1: if img1.endswith(.jpg): path.append(pr\\img1) # 所有图片的路径 print(path) # 216条路径18张*12图 print(imgs1) print(----------第2步新建一个临时文件夹------------) # 新建一个”装N份word和PDF“的文件夹 os.mkdir(rC:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\零时Word) print(----------第3步随机抽取9张图片 ------------) import docx from docx import Document from docx.shared import Pt from docx.shared import RGBColor from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.oxml.ns import qn import random import os,time import docx from docx import Document from docx.shared import Inches,Cm,Pt from docx.shared import RGBColor from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.oxml.ns import qn from docxtpl import DocxTemplate import pandas as pd from docx2pdf import convert from docx.shared import RGBColor for nn in range(0,int(num/2)): #28/2 0-14 doc Document(rC:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\学号数字拼图模板.docx) # # 制作列表 # 从左边图列表和右边图列表中抽取图片12张图片可能5个向左、7个向右边 # 24条里面0和12条是一组2个里面随机抽1一个1和13是一组2个里面随机抽一个…… 抽出12个图片后 r[] c[] r.append(path[nn*18:nn*1818]) # 左侧第一份, # r.append(path[nn*24:nn*2424]) # 连续12张图片、2份字母插入同一份A4 # print(r) # 再打乱顺序读取12个 for a in r: for b in a: c.append(b) # print(c) # figures1c[0:9] # 前9张不重复打乱 # figures2c[9:18] # 后9张不重复打乱 figures1random.sample(c[0:9],Number) # 前9张不重复打乱 figures2random.sample(c[9:18],Number) # 后9张不重复打乱 # figures3random.sample(c[12:18],Number) # 后6张不重复打乱 # figures4random.sample(c[18:24],Number) # 后6张不重复打乱 # 99张不重复打乱图片合并 figuresfigures1figures2 # figuresfigures1figures2figures3figures4 print(figures) # 每2个学号一组的列表 xh2xh[nn*2:nn*22] print(xh2) for z in range(2): # 5行组合循环2次 每页两张表 # 单元格位置3*3格 bg[] # 前131行不要写入 从4动 for x in range(5,8): # 3行 索引5行6行7行 for y in range(0,3): # 3列 索引0列1列2列 ww{}{}.format(x,y) bg.append(ww) print(bg) table doc.tables[z] for t in range(len(bg)): # 02 ppint(bg[t][0:1]) qqint(bg[t][1:2]) # print(p) kfigures[z*9:z*99][t] print(pp,qq,k) # 写入图片 rundoc.tables[z].cell(pp,qq).paragraphs[0].add_run() # 在第1个表格中第2个单元格内插入国旗 run.add_picture({}.format(k),widthCm(4.68),heightCm(2.98)) # 单元格宽度4.7 3 table.cell(pp,qq).paragraphs[0].alignment WD_PARAGRAPH_ALIGNMENT.LEFT #居中 # 第1个表的抬头 title学号_____________班级: 中 ____班 数字拼图{}号.format(xh2[z]) # 写入序号和生肖名称 runtable.cell(0,0).paragraphs[0].add_run(title) # 在单元格0,0(第1行第1列)输入第0个图图案 run.font.name 黑体#输入时默认华文彩云字体 # run.font.size Pt(46) #输入字体大小默认30号 换行一页一份大卡片 run.font.size Pt(15) #输入字体大小默认30号 一行里可以一页两份 run.font.bold True #是否加粗 run.font.color.rgb RGBColor(200,200,200) #数字小颜色深0-255 # paragraph.paragraph_format.line_spacing Pt(180) #数字段间距 r run._element r.rPr.rFonts.set(qn(w:eastAsia), 黑体)#将输入语句中的中文部分字体变为华文行楷 table.cell(0,0).paragraphs[0].alignment WD_PARAGRAPH_ALIGNMENT.CENTER #居中 doc.save(rC:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\零时Word\{}.docx.format(%02d%nn)) from docx2pdf import convert # docx 文件另存为PDF文件 inputFile rC:/Users/jg2yXRZ/OneDrive/桌面/学号数字拼图/零时Word/{}.docx.format(%02d%nn) # 要转换的文件已存在 outputFile rC:/Users/jg2yXRZ/OneDrive/桌面/学号数字拼图/零时Word/{}.pdf.format(%02d%nn) # 要生成的文件不存在 # 先创建 不存在的 文件 f1 open(outputFile, w) f1.close() # 再转换往PDF中写入内容 convert(inputFile, outputFile) print(----------第4步把都有PDF合并为一个打印用PDF------------) # 多个PDF合并CSDN博主「红色小小螃蟹」https://blog.csdn.net/yangcunbiao/article/details/125248205 import os from PyPDF2 import PdfFileMerger target_path C:/Users/jg2yXRZ/OneDrive/桌面/学号数字拼图/零时Word pdf_lst [f for f in os.listdir(target_path) if f.endswith(.pdf)] pdf_lst [os.path.join(target_path, filename) for filename in pdf_lst] pdf_lst.sort() file_merger PdfFileMerger() for pdf in pdf_lst: print(pdf) file_merger.append(pdf) file_merger.write(C:/Users/jg2yXRZ/OneDrive/桌面/学号数字拼图/打印合集学号数字拼图A4一页两份3乘3张{}人共{}份.pdf.format(num,int(num/2))) file_merger.close() # doc.Close() # print(----------第5步删除临时文件夹------------) import shutil shutil.rmtree(C:/Users/jg2yXRZ/OneDrive/桌面/学号数字拼图/零时Word) #递归删除文件夹即删除非空文件夹验证时的代码修改5、全部代码验证用-生成 华文彩云 字体修改代码顺序写入图片验证拼图结果的正确性。随机打乱拼图成果图片验证用的对比学号01-09的学具学号10-19的学具学号20-28的学具目前只测试了华文彩云换个字体要调整数字在图片上的位置需要测试很久教学过程时间2023年06月27日 8:20-9:00班级中6人数22人材料准备学习照片完成的孩子添加一更辅助纸条便于提着拎着挂着展示其他纸条制作作品展示感悟1、16位自己完成1前期做过一次所以孩子们有经验书写学号2两个数字颜色不同辨认起来更便利能有意识把同色的色块聚集在一起3、6位孩子求助“不会做”——月龄小个别指导。1没有写学号就先裁剪了2先剪后写学号上下位置误差3把粘纸卡片剪了上次制作学号拼图也是这样。。

相关新闻

2026还可以用过的网盘不限速解析软件?教你怎么跑满你的带宽

2026还可以用过的网盘不限速解析软件?教你怎么跑满你的带宽

在使用云盘存储和分享大文件时,传输速度往往是影响工作效率的关键瓶颈。许多用户在上传高清视频、大型设计稿或备份数据集时,常常遇到网速被限制的情况,导致原本几分钟能完成的任务拖延至数小时。 https://www.pandown.orghttps://www.pando…

2026/9/25 1:32:49 阅读更多 →
【C语言】变量

【C语言】变量

🔎【博主简介】 👨‍💻 煮啵牛马嵌入式一枚!普普通通带电工科在℃ 📝 六年码龄、全网10W博客粉丝、自嘲 "大六" 学长 🏅 五年深耕竞赛生涯、四年电赛老兵皆获过奖 🏆 两段行业实习经历…

2026/9/25 1:32:42 阅读更多 →
ChatGLM-finetune-LoRA核心功能解析:LoRA配置、多GPU训练与DeepSpeed优化

ChatGLM-finetune-LoRA核心功能解析:LoRA配置、多GPU训练与DeepSpeed优化

ChatGLM-finetune-LoRA核心功能解析:LoRA配置、多GPU训练与DeepSpeed优化 【免费下载链接】ChatGLM-finetune-LoRA 项目地址: https://gitcode.com/gh_mirrors/ch/ChatGLM-finetune-LoRA ChatGLM-finetune-LoRA是一个专注于大语言模型微调的工具包&#xff…

2026/9/12 22:09:38 阅读更多 →

最新新闻

LightGBM多因子选股策略:A股实盘级回测与风控落地

LightGBM多因子选股策略:A股实盘级回测与风控落地

简介:这是一套面向Python初学者的机器学习量化投资教学实践包,聚焦LightGBM模型在证券投资策略中的全流程应用,帮助零基础用户快速掌握数据采集、特征工程、模型训练与回测分析四大核心环节。资源共20个文件,包含5个核心Python脚本…

2026/9/25 1:32:32 阅读更多 →
PSO优化RBF神经网络:小样本非线性建模实战指南

PSO优化RBF神经网络:小样本非线性建模实战指南

简介:本资源是一个基于粒子群优化(PSO)算法改进径向基函数(RBF)神经网络的完整MATLAB实现项目,面向机器学习初学者、智能优化算法研究者及RBF网络应用开发者,解决RBF网络中隐层中心、宽度与权值…

2026/9/25 1:32:32 阅读更多 →
智能车视觉组实战:OpenART Plus + AprilTag实现稳定赛道识别

智能车视觉组实战:OpenART Plus + AprilTag实现稳定赛道识别

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 1:32:32 阅读更多 →
天池二手车价格预测:数据挖掘、特征工程与模型融合实战要点

天池二手车价格预测:数据挖掘、特征工程与模型融合实战要点

简介:面向天池二手车价格预测竞赛的完整项目包,适合机器学习初学者、竞赛参赛者以及需要毕业设计或期末大作业参考的学生。方案基于LightGBM与XGBoost两种梯度提升树算法,从数据读取、缺失值处理、特征构造到模型训练与参数调优均有完整代码与…

2026/9/25 1:32:32 阅读更多 →
cc-switch 与 CCgui 区别:Claude Code 在 IDEA 里的 settings.json 配置骨架与验证

cc-switch 与 CCgui 区别:Claude Code 在 IDEA 里的 settings.json 配置骨架与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 1:32:32 阅读更多 →
LT6911C HDMI转MIPI DSI/CSI方案详解:从硬件设计到驱动调试

LT6911C HDMI转MIPI DSI/CSI方案详解:从硬件设计到驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 1:31:32 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →