news 2026/7/21 20:15:10

【教学类-34-03】20230420学号拼图(数字学号0X-长方块拼图)3*3格子(中班主题《个别化拼图》偏艺术-美术)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【教学类-34-03】20230420学号拼图(数字学号0X-长方块拼图)3*3格子(中班主题《个别化拼图》偏艺术-美术)

作品展示

代码设置:

''' 项目:学号数字矢量图的3*3格拼图 1页两份 横版 作者:阿夏 日期:2023年4月20日21:47 ''' num=int(input('生成多少人(28人)\n')) # num=int(input('生成多少份(4 ABCD四个字母)\n')) Number=int(input('随机抽取几个图片(9个)\n')) print('----------第1步:19张大写字母PNG图片*每张图片切割12张----------------') # 源代码: https://blog.csdn.net/qq_34777982/article/details/125019068?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-125019068-blog-129622294.235^v29^pc_relevant_default_base3&spm=1001.2101.3001.4242.2&utm_relevant_index=4 # Python 裁剪九宫格图片 —— 筑梦之路 import sys import os from PIL import Image # 生成两位数学号 xh=[] for i in range(1,num+1): 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'] # 把文字转成图片 #载入必要的模块 import pygame #pygame初始化 pygame.init() for w in range(len(xh)): # 待转换文字 text = u" {} ".format(xh[w]) #设置字体和字号 # font = pygame.font.SysFont('Arial Black', 2000) font = pygame.font.SysFont('华光彩云', 1000) # Microsoft YaHei' # Huhtikuu # HGKY_CNKI # 华文彩云_CNKI #渲染图片,设置背景颜色和字体样式,前面的颜色是字体颜色 # ftext = font.render(text, True,(220, 220, 220),(255, 255, 255)) ftext = font.render(text, True,(170, 170, 170),(255, 255, 255)) # image = Image.new("RGB", (40, 40)) #保存图片 pygame.image.save(ftext, r"C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\学号数字拼图0\{}.jpg".format('%02d'%(w+1)))#图片保存地址 # 生成0里面的图片大小# 1146 # 687 # 批量调整图片的大小 # 生成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 = r"C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\学号数字拼图" #要切的图片放的文件 fileList = [] n = 0 #读取文件列表 def read_bmp_file_list(path): for root, dirs, files in os.walk(path, topdown=False): 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 # 行几条?400/3 for j in range(0,3): for i in range(0,3): #region = im.crop((x, y, x+w*i, y+h*j)) print(x+w*i, y+h*j,x+w*i+w, y+h*j+h) region = im.crop((x+w*i, y+h*j,x+w*i+w, y+h*j+h)) #文件输出位置 region.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\学号数字拼图1\{name}.jpg".format(name='%03d'%n)) n=n+1 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=[] pr="C:\\Users\\jg2yXRZ\\OneDrive\\桌面\\学号数字拼图\\学号数字拼图1" # 过滤:只保留png结尾的图片 imgs1=os.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(r'C:\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(r'C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\学号数字拼图模板.docx') # # 制作列表 # 从左边图列表和右边图列表中抽取图片(12张图片,可能5个向左、7个向右边) # 24条里面0和12条是一组,2个里面随机抽1一个,1和13是一组,2个里面随机抽一个…… 抽出12个图片后 r=[] c=[] r.append(path[nn*18:nn*18+18]) # 左侧第一份, # r.append(path[nn*24:nn*24+24]) # 连续12张图片、2份字母插入同一份A4 # print(r) # 再打乱顺序读取12个 for a in r: for b in a: c.append(b) print(c) figures1=random.sample(c[0:9],Number) # 前9张不重复打乱 figures2=random.sample(c[9:18],Number) # 后9张不重复打乱 # figures3=random.sample(c[12:18],Number) # 后6张不重复打乱 # figures4=random.sample(c[18:24],Number) # 后6张不重复打乱 # 9+9张不重复打乱图片合并 figures=figures1+figures2 # figures=figures1+figures2+figures3+figures4 print(figures) # 每2个学号一组的列表 xh2=xh[nn*2:nn*2+2] print(xh2) for z in range(2): # 5行组合循环2次 每页两张表 # 单元格位置3*3格 bg=[] # 前1+3+1行不要写入 从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 pp=int(bg[t][0:1]) qq=int(bg[t][1:2]) # print(p) k=figures[z*9:z*9+9][t] print(pp,qq,k) # 写入图片 run=doc.tables[z].cell(pp,qq).paragraphs[0].add_run() # 在第1个表格中第2个单元格内插入国旗 run.add_picture('{}'.format(k),width=Cm(4.95),height=Cm(2.95)) # 单元格宽度4.7 3 table.cell(pp,qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.LEFT #居中 # 第1个表的抬头 title='学号_____________班级: 中 ____班 数字拼图({}号)'.format(xh2[z]) # 写入序号和生肖名称 run=table.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(r'C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\零时Word\{}.docx'.format('%02d'%nn)) from docx2pdf import convert # docx 文件另存为PDF文件 inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/学号数字拼图/零时Word/{}.docx".format('%02d'%nn) # 要转换的文件:已存在 outputFile = r"C:/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') #递归删除文件夹,即:删除非空文件夹

材料准备

切割方法

所有的学具准备好了。班级甲流了,教学活动要到五一节以后开展了。

教学过程:

时间:2023年05月06日

班级:中6班

人数:21人

操作过程:

作品展示:

作品分析:

1、拼图块写学号可大大提升拼图的准确性。

部分孩子有写学号的经验,拼图写学号可提升拼图的正确性(定位上下左右的位置)

2、学号数字外形结构对拼图结果的影响。

(1)01-09学号:03、04、05、06、08、09 这些数字都包含圆弧结构,幼儿对于大量的圆弧碎片图形的多重组合感到茫然(这条圆弧和这条圆弧能拼在一起,但实际并不是正确位置)

调整:1-9的学号只使用1位数字?

问题:但是一个数字就会让卡片出现大量的空格。而且幼儿贴起来太快!

(2)11-19学号:11-19之间数字中,幼儿正确比较高,主要原因是幼儿大部分都写了学号,1字容易拼贴,幼儿只要关注个位数字的结构,辨认难度降低。

调整:

(3)20-28学号:20-28间数字中,22两个数字相同,幼儿对称选择拼图,23、26、28拼图都有困境,教师帮助。

调整:十位数的数字用深灰色,个位数的数字用浅灰色,有明显区分。01-09也可以用这种方法。

难点:如何让生成图片带两个颜色的数字?

3、11-19出现的左下角两块空白纸。

幼儿询问两块空白纸如何黏贴(随便贴在空白处,没有意义)

调整:

1、测试一:换一种数字字体

2、测试二:把图片像素长宽调整,压缩宽度,确保9块拼图上都有图案(图案最好多一点,防止幼儿剪边把很细的图案剪光了。)

感悟:

实践出真知,观察幼儿学习过程及操作结果,才能进一步优化学具(色彩),提高课堂整体学习的效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 20:13:03

前端HTML转word文档,绝对有效!!!

2024.4.19 更新日志:有小伙伴私信我element-ui等ui插件等复杂样式无法转换生成,考虑到 html-docx-js本身不支持大多c3样式及标签,先提供解决方法将dom转成图片插入文档中,只需要用标签盒子 包裹住 你需要生成的dom模块&#xff0…

作者头像 李华
网站建设 2026/7/21 20:09:56

NGraphics完全指南:跨平台.NET矢量图形渲染库入门详解

NGraphics完全指南:跨平台.NET矢量图形渲染库入门详解 【免费下载链接】NGraphics NGraphics is a cross platform library for rendering vector graphics on .NET. It provides a unified API for both immediate and retained mode graphics using high quality …

作者头像 李华
网站建设 2026/7/21 20:07:46

本地语音AI全能选手:sherpa-onnx实战指南

本地语音AI全能选手:sherpa-onnx实战指南 【免费下载链接】sherpa-onnx Speech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support emb…

作者头像 李华
网站建设 2026/7/21 20:05:41

Metaboss完全教程:从零开始管理Solana NFT的完整指南

Metaboss完全教程:从零开始管理Solana NFT的完整指南 【免费下载链接】metaboss The Metaplex NFT-standard Swiss Army Knife tool. 项目地址: https://gitcode.com/gh_mirrors/me/metaboss 想要高效管理Solana区块链上的NFT资产吗?Metaboss是您…

作者头像 李华
网站建设 2026/7/21 20:05:29

表面划痕检测 选择光源并非简单照亮

工业光源是机器视觉系统成像关键核心,直接决定图像清晰度、对比度、缺陷辨识度,没有优质光源,相机和算法再强也无法精准检测。很多视觉检测时,选择错误的光源,不仅检测效率慢,检测效果也差。工业光源本质&a…

作者头像 李华
网站建设 2026/7/21 20:05:16

如何用GodotInk创建复杂对话树:7个实用技巧与最佳实践

如何用GodotInk创建复杂对话树:7个实用技巧与最佳实践 【免费下载链接】godot-ink Ink integration for Godot Engine. 项目地址: https://gitcode.com/gh_mirrors/go/godot-ink GodotInk是一款专为Godot Engine设计的Ink集成插件,能够帮助开发者…

作者头像 李华