背景需求:
前期用midjounery下载了一些动物头饰图片
【教学类-36-02】20230625动物头饰制作1.0(midjounery动物简笔画四图)一页一种动物_英语头饰动物的制作图片-CSDN博客文章浏览阅读471次。【教学类-36-02】20230625动物头饰制作1.0(midjounery动物简笔画四图)一页一种动物_英语头饰动物的制作图片https://blog.csdn.net/reasonsummer/article/details/131383513
现在我用“通义万相”生成相似的图片功能
选一张原来有的图片
选一些好看的原图,在“通义万象”里生成“相似图片”四张
因为是用已经存在的midjounery精美图片生成的,所以没有出现奇怪的图案(多条尾巴、多条腿等)
我希望做成连连看的样式(8个图案互相连线)
代码展示
'''
01通义动物连连看头饰 一种动物四个图,连线
AI对话大师,阿夏
2024年6月9日
'''
# 第3步,读取图片写入docx,合并PDF
import os,time
from docx import Document
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
from PyPDF2 import PdfMerger
from docx.shared import Cm
import random,itertools
# 读取123文件夹中的所有图片地址
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\20240609通义动物连连看头饰'
image_folder=path+r'\01四个动物连线'
new_folder = path+r'\零时文件夹'
os.makedirs(new_folder, exist_ok=True)
image_files = [os.path.join(image_folder, file) for file in os.listdir(image_folder) if file.endswith('.png')]
# print(image_files)
# print(len(image_files))
# 140
# 每4个图片一组进行处理
grouped_files1 = [image_files[i:i+4] for i in range(0, len(image_files), 4)]
print('1:',len(grouped_files1))
# 35
print(grouped_files1)
grouped_files2=[]
# 对嵌套列表里面的每组的四个图案进行打乱
for group in grouped_files1:
b=random.sample(group,4)
grouped_files2.append(b)
print('2:',len(grouped_files2))
print(grouped_files2)
# 提取两组4张的图片
grouped_files3=[]
for x in range(len(grouped_files1)):
grouped_files3.append(grouped_files1[x])
grouped_files3.append(grouped_files2[x])
print('全',len(grouped_files3))
print(grouped_files3)
# 280
# # 扁平化 grouped_files2 到一个一层的列表
grouped_files4 = list(itertools.chain.from_iterable(grouped_files3))
grouped_files = [grouped_files4[i:i+24] for i in range(0, len(grouped_files4), 24)]
# print(grouped_files)
# print(len(grouped_files))
# 处理每一组图片
for group_index, group in enumerate(grouped_files):
# 创建新的Word文档
doc = Document(path+r'\动物连连看一页3套.docx')
# print(group)
# 遍历每个单元格,并插入图片
for cell_index, image_file in enumerate(group):
# 计算图片长宽(单位:厘米)
# 插入图片到单元格
table = doc.tables[0]
cell = table.cell(int(cell_index / 4), cell_index % 4)
# 如果第一行有4个格子,两个数字都写4
cell_paragraph = cell.paragraphs[0]
cell_paragraph.clear()
run = cell_paragraph.add_run()
run.add_picture(image_file, width=Cm(4.69), height=Cm(4.69))
# 保存Word文档
doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))
# 所有docx合并成PDF
# 将10个docx转为PDF
import os
from docx2pdf import convert
from PyPDF2 import PdfFileMerger
# from PyPDF4 import PdfMerger
# output_folder = output_folder
pdf_output_path = path+fr'\\通义动物连连看头饰相同大小{int(len(image_files)/12)+1}张{len(image_files)}人使用.pdf'
# 将所有DOCX文件转换为PDF
for docx_file in os.listdir(new_folder):
if docx_file.endswith('.docx'):
docx_path = os.path.join(new_folder, docx_file)
convert(docx_path, docx_path.replace('.docx', '.pdf'))
# 合并零时文件里所有PDF文件
merger = PdfFileMerger()
for pdf_file in os.listdir(new_folder):
if pdf_file.endswith('.pdf'):
pdf_path = os.path.join(new_folder, pdf_file)
merger.append(pdf_path)
time.sleep(2)
# 保存合并后的PDF文件
merger.write(pdf_output_path)
merger.close()
import shutil
# 删除输出文件夹
import time
shutil.rmtree(new_folder)
# shutil.rmtree(new)
time.sleep(2)
虽然图案近似,但是仔细看一个特征(如尾巴、眼睛、发型),就可以快速找到一模一样的图案。难度不大。
完成后,我希望孩子们把8个图案剪下来,制作各种有趣的玩具。
教学测试
时间:2024年6月11日
班级:中四班
人数:23人
幼儿辨识图案
幼儿连线
手工制作
感悟:
1、幼儿的连线情况不错,大部分都是对的,
2、手工制作,大部分都是手环、头饰、
后续引导幼儿用8张图片做绘本(连环画)