【教学类-36-07】对称蝴蝶(midjounery-niji)(涂色、裁剪、游戏(飞舞的蝴蝶))

news/2024/11/29 17:21:36/

作品展示

一、利用midjounery获得简笔画样式的“蝴蝶”

Animal Mask , simple stroke, cartoon, black and white outline, uncolored

NIJI 5

 

 

 

 二、图片切割

用以下代码把上面文件夹里所有的2048*2048的单张图片切割程2*2


# 参考网址:https://blog.csdn.net/weixin_42182534/article/details/125773141?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E6%88%AA%E5%8F%96%E5%9B%BE%E7%89%87%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-125773141.nonecase&spm=1018.2226.3001.4187'''功能:把midjounery 3*3方形矩阵,5*4矩阵、3*5矩阵切割 通用公式)
作者:阿夏
时间:2023年6月26日 19:51
'''import os
import os.pathfrom PIL import Imagelong=int(input('图片长度像素(1024)\n'))
wide=int(input('图片宽度像素(1024)\n'))small_long=int(input('长边切分4(4*3)\n'))
small_wide=int(input('宽边切分3(4*3)\n'))
# 目前图片都是2*2,3*3排列# 1:1图比例是2048
# 16:9图片比例 2912:1632
wj=input('文件夹名称\n')z=0
longall=[]
longall.append(z)
for l in range(1,small_long+1):ll=float(long/small_long*l)longall.append(ll)
print(longall)
# 右侧边的所有参数 长/X
# [0, 512, 1024, 1536, 2048]wideall=[]
wideall.append(z)
for w in range(1,small_wide+1):ww=float(long/small_wide*w)    wideall.append(ww)
print(wideall)
# 下边的所有参数 宽/X
# [0, 682.6666666666666, 1365.3333333333333, 2048.0]pic=[]
for x in range(0,small_wide):for y in range(0,small_long):z1=longall[y]z2=wideall[x]z3=longall[y+1]z4=wideall[x+1]pic.append(z1)pic.append(z2)pic.append(z3)pic.append(z4)
print(len(pic))# # 4*3图为例hang # 第1行四张 # z1=longall[0]  [1]   [2] [3]# z2=wideall[0]# z3=longall[1]  [2]   [3] [4]# z4=wideall[1]# 第2行四张 # z1=longall[0]  [1]   [2] [3]# z2=wideall[1]# z3=longall[1]  [2]   [3] [4]# z4=wideall[2]# 第3行四张 # z1=longall[0]  [1]   [2] [3]# z2=wideall[2]# z3=longall[1]  [2]   [3] [4]# z4=wideall[3]# 总结:# z1=long[0:4]  每张图左侧的坐标会变 ,索引数字不断从0,1/4,2/4,3/4# z2=宽数量     宽的索引,不断增加# z3=long[0+1:4+1]  每张图右侧 索引数+1 从1/4,2/4,3/4,4/4(=长)20# z4=宽+1      宽的索引+1# 定义文件所在文件夹
image_dir = r'C:\Users\jg2yXRZ\OneDrive\桌面\{}'.format(wj)
for parent, dir_name, file_names in os.walk(image_dir):  # 遍历每一张图片for filename in file_names:print(filename)pic_name = os.path.join(parent, filename)image = Image.open(pic_name)_width, _height = image.sizeprint(_width, _height)qfall=4# 每张图有4个坐标n=0  for p in range(int(len(pic)/4)):pp=pic[p*4:p*4+4]print(pp)# 定义裁剪范围(left, upper, right, lower)1024# # box = image.crop((0,0,123,123))box = image.crop((pp[0],pp[1],pp[2],pp[3]))name = filename[:-4]+'_'+str(n) +'.png'print(name)# # # ,pp[3],pp[4],pp[5],pp[6],pp[7],pp[8],pp[9]))# # name = filename[:-4]+'_'+str(p) +'.png'2048box.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\{}\{}'.format(wj,name))n+=1#     print('Done!')   

 

 

把切割好的图片,挑选符合要求的放到”蝴蝶图片单张“

 

只要对称的蝴蝶简笔画图案

 

三、学具生成(正方形单图、A4单图、A4 三图)

文件夹准备:

 

 第1类:正方形15*15厘米手工纸

 一个面具图片插入一个框,图案尽量放到最大。

# '''
# 15*15正方形手工纸 一只蝴蝶
# 目的:一只蝴蝶手环(对称+裁剪+手环帽子等)
# 作者:阿夏
# 时间:2023年7月7日17:27
# '''# '''
# '''
print('----------第1步:提取所有的幼儿照片的路径------------')
import os
path=[]
p=r"C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\蝴蝶图片单张"
# 过滤:只保留png结尾的图片 31张(多几张备用)
imgs=os.listdir(p)
for img in imgs:if img.endswith(".png"):path.append(p+'\\'+img)
# 所有图片的路径
print(path)
# 提取动物名字倒数第4个字之前的动物名字
print(imgs)print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\零时Word')print('----------第3步:随机抽取12张图片 ------------')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 randomimport 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.enum.text import WD_VERTICAL_ALIGNMENT
# from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT         #用来设置单元格垂直对齐方式
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorfor nn in range(0,int(len(path))):      # 读取图片的全路径  的数量 31张doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\蝴蝶正方形15.docx')figures=path[nn]           # 图片的全路径的第一张 table = doc.tables[0]          # 4567(8)行
## 写入照片run=doc.tables[0].cell(0,0).paragraphs[0].add_run()        # # 图片位置 第一个表格的0 3 插入照片run.add_picture(r'{}'.format(figures),width=Cm(15),height=Cm(15))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/桌面/蝴蝶/(打印合集)蝴蝶15制作({}人共{}份).pdf".format(len(path),len(path)))
file_merger.close()
# doc.Close()# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/蝴蝶/零时Word') #递归删除文件夹,即:删除非空文件夹

效果展示:

  ​​​​​​​生成的是两页的,打印时选择奇数页或者双面打印

 

 (以上是15*15彩色手工纸打印(打印时需要对打印机参数进行设置)

 图案最高长度:15CM

 第2类:长方形19.5*29.7厘米A4(1只大蝴蝶)

材料准备:

   插入1行2列表格,右侧表格长宽如下

 左侧单元格设置如下

  一个面具图片插入一个框,图案尽量放到最大。(会出现第二页,就让它出现吧,打印时,选双面打印就还是一份)

# '''
# 21*29.7(19.5)长方形A4 
# 目的:一只蝴蝶手环(对称+裁剪+手环帽子等)
# 作者:阿夏
# 时间:2023年7月7日17:27
# '''
# '''
print('----------第1步:提取所有的幼儿照片的路径------------')
import os
path=[]
p=r"C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\蝴蝶图片单张"
# 过滤:只保留png结尾的图片 31张(多几张备用)
imgs=os.listdir(p)
for img in imgs:if img.endswith(".png"):path.append(p+'\\'+img)
# 所有图片的路径
print(path)
# 提取动物名字倒数第4个字之前的动物名字
print(imgs)print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\零时Word')print('----------第3步:随机抽取12张图片 ------------')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 randomimport 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.enum.text import WD_VERTICAL_ALIGNMENT
# from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT         #用来设置单元格垂直对齐方式
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorfor nn in range(0,int(len(path))):      # 读取图片的全路径  的数量 31张doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\蝴蝶长方形19.5.docx')figures=path[nn]           # 图片的全路径的第一张 table = doc.tables[0]          # 4567(8)行
## 写入照片run=doc.tables[0].cell(0,0).paragraphs[0].add_run()        # # 图片位置 第一个表格的0 3 插入照片run.add_picture(r'{}'.format(figures),width=Cm(19.3),height=Cm(19.3))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/桌面/蝴蝶/(打印合集)蝴蝶19.5制作({}人共{}份).pdf".format(len(path),len(path)))
file_merger.close()
# doc.Close()# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/蝴蝶/零时Word') #递归删除文件夹,即:删除非空文件夹

效果展示:

 

 

 图案最高长度:19.5CM

 第3类:长方形19.5*29.7厘米A4(1大2小 蝴蝶母子)

材料准备:

   插入1行2列表格,右侧表格长宽如下

 左侧单元格设置如下

  一个面具图片插入左侧正方框,图案尽量放到最大。右侧框插入两个小蝴蝶图案

代码

# '''
# 21*29.7(19.5)长方形A4 
# 目的:一大二小蝴蝶手环(对称+裁剪+手环帽子等)
# 作者:阿夏
# 时间:2023年7月7日17:27
# '''
# '''
print('----------第1步:提取所有的幼儿照片的路径------------')
import os
path=[]
p=r"C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\蝴蝶图片单张"
# 过滤:只保留png结尾的图片 31张(多几张备用)
imgs=os.listdir(p)
for img in imgs:if img.endswith(".png"):path.append(p+'\\'+img)
# 所有图片的路径
print(path)
# 提取动物名字倒数第4个字之前的动物名字
print(imgs)print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\零时Word')print('----------第3步:随机抽取12张图片 ------------')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 randomimport 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.enum.text import WD_VERTICAL_ALIGNMENT
# from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT         #用来设置单元格垂直对齐方式
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColorfor nn in range(0,int(len(path))):      # 读取图片的全路径  的数量 31张doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\蝴蝶\蝴蝶长方形19.5.docx')figures=path[nn]           # 图片的全路径的第一张 table = doc.tables[0]          # 4567(8)行
## 写入1张大图run=doc.tables[0].cell(0,0).paragraphs[0].add_run()        # # 图片位置 第一个表格的0 3 插入照片run.add_picture(r'{}'.format(figures),width=Cm(19.3),height=Cm(19.3))table.cell(0,0).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中 # 写入2张小图for tt in range(2):run=doc.tables[0].cell(0,1).paragraphs[0].add_run()        # # 图片位置 第一个表格的0 3 插入照片run.add_picture(r'{}'.format(figures),width=Cm(8.7),height=Cm(8.7))table.cell(0,1).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/桌面/蝴蝶/(打印合集)3只蝴蝶19.5制作({}人共{}份).pdf".format(len(path),len(path)))
file_merger.close()
# doc.Close()# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/蝴蝶/零时Word') #递归删除文件夹,即:删除非空文件夹

效果展示:

 

 

(可以做三个蝴蝶玩具)

感悟:

1、WORD模板出现第二页,我都会想尽办法调整段落(固定值1磅)来消除第2页,今天发现完全可以默认第二页的存在,只要确保第二页为空白,。在打印时,注意选择:奇数页打印,或者默认双面打印,也同样可以获得一张学具。

2、MJ的图案很丰富多样,有些面具眼睛部分还是需要教师手画××,提示幼儿镂空剪。

3、每个面具不一定正好符合幼儿的眼距。教学实验一次后,再挑选出一些比较实用的的面具图案,

教学目的:

1、对称涂色(左右镜像颜色

2、沿边裁剪

3、面具眼睛部分镂空剪

4、用吸管制作手持面具、用纸条制作蝴蝶手环,项链,头饰、耳环等


http://www.ppmy.cn/news/774210.html

相关文章

色域空间总结

RGB颜色空间 在计算机图形中广泛使用红,绿和蓝(RGB)颜色空间。红,绿,蓝是三种主要的相加色(不同的颜色加在一起形成所需的颜色)。用一个三维笛卡尔坐标系统(图1.1)来表示…

使用selenium爬取猫眼电影榜单数据

文章目录 前言导入所需的库&#xff1a;设置ChromeDriver的路径&#xff0c;并创建一个Chrome浏览器实例&#xff1a;打开目标网页&#xff0c;这里以猫眼电影榜单页面为例&#xff1a;使用XPath定位电影信息。通过查看网页源代码&#xff0c;发现电影信息所在的<dd>标签…

uni-app 使用@escookrequest-miniprogram请求发送

前言 在使用uni-app开发小程序时候发现axios添加请求头时在实际网络请求时并没有添加进去 后面发现是有第三方包escookrequest-miniprogram代替axios发送请求的&#xff0c;请求头也添加正常。 注意是这个包也是在外层包了一层data&#xff0c;但好像并不能统一处理掉。 代…

IDEA alt+ins快捷键失效问题解决方法

解决方法 将这几个插件勾勾去掉&#xff0c;然后apply&#xff0c;此时会提示重启IDEA&#xff0c;重启过后即可使用了

Git Bash中的复制与粘贴

Git Bash中的复制与粘贴 Ctrlins 复制 &#xff08;ins 键盘右上角的Insert&#xff09;Shiftins 粘贴 &#xff08;shift 键盘上最左下角CTRL键的上面一个上档转换键&#xff0c;也可用于中英文转换&#xff09;

键盘里Insert作用

键盘里Insert的存在 据说呀&#xff0c;以前的屏幕会消耗四分之一的内存&#xff0c;不小心的一次插入就可能会导致系统崩溃&#xff0c;所以才会有Insert的出现&#xff0c;可以在一个屏幕里修改内容。 也就是说&#xff0c;Insert的作用就是便于修改 现在依然存在着&#…

在webstorm中不知道碰到了什么键,光标变成宽黑形状怎么恢复?

答&#xff1a;应该是ins键。再按下就好了。 台式机键盘上这个键位于方向键的上方的del键的上方。 也有叫做insert&#xff0c;或者中文键盘直接叫“插入”的&#xff0c;仔细找找。 在笔记本中&#xff0c;这个按钮就是insert&#xff0c;也就是右边键盘中的数字块&#xff0…