【教学类-34-11】20240314 动物拼图(Midjounery生成线描图,8*8格拼图块 A4整张)(AI对话大师)

作品展示:——A4整页(一人2张纸)

背景需求:

通过春天拼图的个别化实验,我发现:

【教学类-34-10】20240313 春天拼图(Midjounery生成线描图,4*4格拼图块)(AI对话大师)-CSDN博客文章浏览阅读645次,点赞14次,收藏15次。【教学类-34-10】20240313 春天拼图(Midjounery生成线描图,4*4格拼图块)(AI对话大师)https://blog.csdn.net/reasonsummer/article/details/136674989

1、3位女孩很喜欢动物主题的拼图。

2、无论底图是深色、浅色、曝光色,幼儿都完成了相应的作品(深色底图与深色拼图,容易看不清楚是否已经贴过贴图,而浅色和曝光底图,能比较明显看到贴过与否)

3、3位幼儿已经快速适应3*3、4*4的拼图制作模式。

因此,我将用动物图案设计8*8的a4整张64块拼图。

素材准备:

代码展示:

'''
动物拼图(64格,AI对话大师)
作者:AI对话大师、阿夏
时间:2024年3月14日
'''print('------第1步 把2424*1859的图片切割成2*2----------')import os
from PIL import Image# # 指定123文件夹和234文件夹的路径'
# input_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\动物拼图64块\00原图'
# output_folder = r'C:\Users\jg2yXRZ\OneDrive\桌面\动物拼图64块\00切图'# # 检查文件夹是否存在
# if not os.path.exists(output_folder):
#     # 如果文件夹不存在,则新建文件夹
#     os.makedirs(output_folder)# # 遍历123文件夹中的所有png文件
# for file_name in os.listdir(input_folder):
#     if file_name.endswith('.png'):
#         img = Image.open(os.path.join(input_folder, file_name))#         # 定义切割后每张图片的尺寸
#         width, height = img.size
#         new_width = width // 2
#         new_height = height // 2#         # 切割图片并保存
#         for i in range(2):
#             for j in range(2):
#                 box = (j*new_width, i*new_height, (j+1)*new_width, (i+1)*new_height)
#                 region = img.crop(box)
#                 output_file = os.path.join(output_folder, '{}_{}_{}.png'.format(os.path.splitext(file_name)[0], i, j))
#                 region.save(output_file)# print('图片批量切割完成并保存在234文件夹中。')print('------第2步 把00切图增加对比度(线条变黑),制作02贴图深色----------')from PIL import Image
from PIL import ImageEnhance
import os# 定义文件夹路径
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\动物拼图64块\00切图'
new_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\动物拼图64块\02贴图深色'
# 检查文件夹是否存在
if not os.path.exists(new_path):# 如果文件夹不存在,则新建文件夹os.makedirs(new_path)# 循环处理文件夹下的所有图片文件
for filename in os.listdir(folder_path):if filename.endswith(('.png', '.jpg', '.jpeg')):# 打开图片文件image_path = os.path.join(folder_path, filename)image = Image.open(image_path)# 转换为黑白色bw_image = image.convert('L')# 增加对比度enhancer = ImageEnhance.Contrast(bw_image)bw_image = enhancer.enhance(30.0)  # 这里的2.0可以根据需要调整# 保存处理后的图片bw_image.save(os.path.join(new_path, filename))print("图片处理完成!")print('------第3步 把00切图增加明度(线条变白,浅色),制作01底图浅色----------')from PIL import Image
from PIL import ImageEnhance
import os# 定义文件夹路径
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\动物拼图64块\00切图'
new_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\动物拼图64块\01底图浅色'
# 检查文件夹是否存在
if not os.path.exists(new_path):# 如果文件夹不存在,则新建文件夹os.makedirs(new_path)# 定义明度增加倍数
brightness_factor = 2# 循环处理文件夹下的所有图片文件
for filename in os.listdir(folder_path):if filename.endswith(('.png', '.jpg', '.jpeg')):# 打开图片文件image_path = os.path.join(folder_path, filename)image = Image.open(image_path)# 增加明度enhancer = ImageEnhance.Brightness(image)bright_image = enhancer.enhance(brightness_factor)# 保存处理后的图片bright_image.save(os.path.join(new_path, filename))print("图片处理完成!")print('------第4步 把浅灰色底纹图片、深黑色贴图图片,学号图片切割成16张 03底图浅色小块+04贴图深色小块----------')from PIL import Image, ImageDraw, ImageFontpath=r'C:\Users\jg2yXRZ\OneDrive\桌面\动物拼图64块'# 新建两个文件夹
t=['01底图浅色','02贴图深色','03底图浅色小块','04贴图深色小块']import os
for tt in t:folder_path_file = path+r"\{}".format(tt)# 检查文件夹是否存在if not os.path.exists(folder_path_file):# 如果文件夹不存在,则新建文件夹os.makedirs(folder_path_file)# 把浅灰色底纹图片、深黑色贴图图片,学号图片切割成16张
from PIL import Image, ImageOps
import os
import glob
import random
# 8*8图片切割
w=8
l=8for vv in range(int(len(t)/2)):# 指定文件夹路径folder_path = path + r"\{}".format(t[vv])  # 打开01\02文件夹# print(folder_path)# 获取文件夹中所有PNG图片的路径png_files = glob.glob(os.path.join(folder_path, '*.png'))print(png_files)# 逐个打开PNG图片并切割成9块小图for png_file in png_files:image = Image.open(png_file)# 获取图片大小width, height = image.size# 切割成64块拼图小块并保存count = 1block_width = width // wblock_height = height // lfor i in range(w):for j in range(l):box = (j*block_width, i*block_height, (j+1)*block_width, (i+1)*block_height)region = image.crop(box)#生成9张*30份=261图  ,生成在03 、04文件夹里。   因为切成16张,所以序号是01-16,region.save(path + r'\{}\{}_{}.png'.format(t[vv+2], os.path.splitext(os.path.basename(png_file))[0], '%02d'%count))count += 1print('------第5步 把02按序填入上面16个格子,把深灰色学号图片打乱填入组成16+16一组,一页2组 64个路径----------')
# 坐标,两个表格连在一起,但是先写左侧上下的18个坐标,再写右侧上下的18个坐标
bg = []
# 8*16行表格
for x in range(0, w):for y in range(0, w):       bg.append('{:02d}{:02d}'.format(x, y))for x in range(w, w*2):for y in range(0, w):bg.append('{:02d}{:02d}'.format(x, y))print(bg) # 36
print(len(bg))# 切割成多少份,261个元素,18个在一页上,03文件夹浅灰:前9个按顺序写入,04文件夹的深灰色:后9个打乱写入
t2=['03底图浅色小块','04贴图深色小块']
pic=[]
for t3 in t2:folder_path = path + r"\{}".format(t3)  # 打开01\02文件夹# print(folder_path)    # C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\03底图浅色小块  C:\Users\jg2yXRZ\OneDrive\桌面\学号数字拼图\04贴图深色小块# 获取文件夹中所有PNG图片的路径png_files = glob.glob(os.path.join(folder_path, '*.png'))print(len(png_files))# 272pic.append(png_files)
print(pic)
print(len(pic))# 2组 浅色一组 深色一组[['','','浅色261张'],['','','深色261张']]print('---拆成16个一组-------')
smaillpic=[]
for o in range(len(pic)):    # 0,1g=w*w
#     # 假设你有一个包含261个元素的列表list1list1 = [i for i in range(len(pic[o]))]  # 这里只是举例,实际情况根据你的实际数据来创建列表# 将列表按照18个一组分割grouped_list = [pic[o][i:i+g] for i in range(0, len(pic[o]), g)]smaillpic.append(grouped_list)
print(smaillpic)
# [[[9张],[9张],[9张],[],[],[]]]]
print(len(smaillpic))# 2组
print(len(smaillpic[0]))# 每组3张
print(len(smaillpic[0][0]))# 每张64图print('---16个浅灰路径+16个深灰路径【【9个浅灰】【9个深灰】】-------')# 
path1=[]
for n in range(len(smaillpic[0])):  # 读取30组9个路径   #  【9个浅灰】按顺序写入path1.append(smaillpic[0][n])# 【9个深灰】打乱写入c=random.sample(smaillpic[1][n],w*w)path1.append(c)  
print(path1)
print(len(path1))
# 6组
print(len(path1[0]))
# 每组64个# 提取所有元素放在一起
all_paths = [path for sublist in path1 for path in sublist]
# # print(all_paths)
# print(len(all_paths))# 540# 把所有内容变成36个一组
nested_paths = [all_paths[i:i+w*w*2] for i in range(0, len(all_paths), w*w*2)]
print(nested_paths)
print(len(nested_paths))
# 15组 每组里面是2个(9个浅色+9个深色)from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Cm
from docx2pdf import convert
from PyPDF2 import PdfMerger
import os,time
import shutilprint('------第6步 36个路径写入单元格----------')# 指定新建文件夹路径
d = path + r"\零时文件夹"# 检查文件夹是否存在,如果不存在则新建
if not os.path.exists(d):os.makedirs(d)merged_pdf = PdfMerger()for nn in range(0, len(nested_paths)):doc = Document(path + r'\动物拼图.docx')table = doc.tables[0]for t, bg_value in enumerate(bg):pp = int(bg_value[0:2])qq = int(bg_value[2:4])k = nested_paths[nn][t]print(pp, qq, k)run = doc.tables[0].cell(pp, qq).paragraphs[0].add_run()run.add_picture('{}'.format(k), width=Cm(3.7), height=Cm(2.55))table.cell(pp, qq).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTERdoc.save(path + r'\零时文件夹\{}.docx'.format('%02d' % nn))time.sleep(2)# docx转PDFinputFile = path + r"\零时文件夹\{}.docx".format('%02d' % nn)outputFile = path + r"\零时文件夹\{}.pdf".format('%02d' % nn)with open(outputFile, 'w'):passconvert(inputFile, outputFile)time.sleep(2)merged_pdf.append(outputFile)
# 合并PDF、
merged_pdf.write(path + r"\有底图的动物拼图{}块({}人共{}份{}张).pdf".format(w*w,int(len(nested_paths)), len(nested_paths),len(nested_paths)*2))
merged_pdf.close()print('----------第7步:把都有PDF合并为一个打印用PDF------------')# 删除临时文件夹    
shutil.rmtree(path + r"\零时文件夹")

作品展示:

一人一份2张图预览

A4一页底图64块

A4一页贴图64块

对贴图的筛选

如果有白色块(多块)就尽量不要打印了

底色与贴图的颜色都很深,也不打印(因为容易看不清楚,到底贴过没有贴过)

3月15日是隔离最后一天,我打印几份适合的64块拼图,,观察:

1、3位女孩会选什么图案

2、3位女孩是否能完成64块拼贴(可辨认的细节少了)

3、3位女孩最快、最慢多久完成64块拼图。

后续:

1、根据幼儿需求,在MJ里继续生成有“角色”主体的图片(可惜MJ账号不多了,必须省着点用o(╥﹏╥)o,真希望一次生成4张图都能用上,但是这个随机性太强)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744904.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Docker上传我们自己的镜像(以springboot项目为例)

首先确定好在我们的centOS服务器上已经安装并配置好docker 配置自己的springboot镜像并运行 获取springboot的jar包 maven clean--》mavenue package --》复制target目录下生成的jar包 在服务器选择一个文件夹上传jar包,我这里选用的文件夹叫做/opt/dockertest…

【数据结构】树与堆 (向上/下调整算法和复杂度的分析、堆排序以及topk问题)

文章目录 1.树的概念1.1树的相关概念1.2树的表示 2.二叉树2.1概念2.2特殊二叉树2.3二叉树的存储 3.堆3.1堆的插入(向上调整)3.2堆的删除(向下调整)3.3堆的创建3.3.1使用向上调整3.3.2使用向下调整3.3.3两种建堆方式的比较 3.4堆排…

河南大学数据分析可视化实验-数据分析基础

计算机与信息工程学院实验报告 姓名: 杨馥瑞 学号:2212080042专业:数据科学与大数据分析技术 年级: 2022 课程: 数据分析和可视化 主讲教师: 周黎鸣 辅导教师: 周黎鸣 …

MISC-Catflag

前言 开始拿到这道题,以为是要识别文件类型,后面发现不是,kali识别为ascii文本文件。而用010editor打开,又是一堆看不懂的码 后面发现有很多重复内容1B 5B 43等等,再看题目type flag or cat flag可以联想linux的cat命…

【1】Python零基础起步

什么是编程(Programming) 编程是编定程序的中文简称,就是让计算机代码解决某个问题(目的),对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程(手段&am…

微信小程序(五十九)使用鉴权组件时原页面js自动加载解决方法(24/3/14)

注释很详细,直接上代码 上一篇 新增内容: 1.使用覆盖函数的方法阻止原页面的自动执行方法 2.使用判断实现只有当未登录时才进行方法覆盖 源码: app.json {"pages": ["pages/index/index","pages/logs/logs"],…

【无标题】vmprotect net 混淆效果挺不错

vmprotect net 混淆效果挺不错,测试了一个,以前的写程序。用dnspy测试一下,效果非常好。 sunnf0451qq.com

1.MongoDB的特点与应用场景

什么是 MongoDB ? MongoDB 是基于 C 开发的 NOSQL 开源文档数据库 ,是最像关系型数据库的 nosql,功能也是最丰富的 nosql,它具有所以的可伸缩性,灵活性,高性能,高扩展性的优势。 大致有如下特…

基于SpringBoot的“实习管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“实习管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 学生注册界面图 后台登录界面图 …

【C++面向对象】C++飞机购票订票系统(源码+说明)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

好玩的css样式

1.鼠标悬浮文字跳动动画效果 <p class"dajianshi ">应用名称:</p> .dajianshi {font-size: 14px;color: black; }.dajianshi:hover {animation: animate 0.5s linear infinite; }keyframes animate {0%,25% {text-shadow: 2px 5px 2px rgb(255, 151, 15…

多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测

多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.M…

Docker容器化技术(使用Docker搭建论坛)

第一步&#xff1a;删除容器镜像文件 [rootlocalhost ~]# docker rm -f docker ps -aq b09ee6438986 e0fe8ebf3ba1第二步&#xff1a;使用docker拉取数据库 [rootlocalhost ~]# docker run -d --name db mysql:5.7 02a4e5bfffdc81cb6403985fe4cd6acb0c5fab0b19edf9f5b8274783…

美摄科技对抗网络数字人解决方案

在数字化浪潮的推动下&#xff0c;企业对于高效、创新且具备高度真实感的数字化解决方案的需求日益迫切。美摄科技凭借其在人工智能和计算机视觉领域的深厚积累&#xff0c;推出了一款全新的对抗网络数字人解决方案&#xff0c;该方案能够为企业构建出表情和动作都极为逼真的数…

Python环境搭建 -- Python与PyCharm安装

一、Python安装 我们先找到Python的官方网站&#xff0c;在浏览器中搜索Python即可&#xff0c;然后进入Python官网 点击Downloads&#xff0c;选择对应匹配的操作系统 点进去之后&#xff0c;Python的版本分为稳定的版本和前置版本&#xff0c;前置的版本就是还没有发行的版本…

【Flink SQL】Flink SQL 基础概念:SQL 的时间属性

Flink SQL 基础概念&#xff1a;SQL 的时间属性 1.Flink 三种时间属性简介2.Flink 三种时间属性的应用场景2.1 事件时间案例2.2 处理时间案例2.3 摄入时间案例 3.SQL 指定时间属性的两种方式4.SQL 事件时间案例5.SQL 处理时间案例 与离线处理中常见的时间分区字段一样&#xff…

服务器将动态IP设置成静态IP(内部网络)

话不多说,直接上干货 打开终端,输入命令行:ifconfig,查看你的网卡配置,此次设置的第一个,如下: 打开配置文件&#xff0c;一般在/etc/sysconfig/network-scripts/文件夹下&#xff1a; 编辑配置文件&#xff1a;vi ifcfg-eno1 修改IP地址分配方式&#xff1a; &#xff08;1&a…

Excel小技巧 (3) - 如何取整

1. 四舍五入 Round&#xff08;对象&#xff0c;小数点后位数&#xff09; 结果 123.1 2.向上取整 Roundup&#xff08;对象&#xff0c;小数点后位数&#xff09; 结果&#xff1a;123.2 3.向下取整 Round&#xff08;对象&#xff0c;小数点后位数&#xff09; 结果123.…

【string一些函数用法的补充】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 string类对象的修改操作 我们来看 c_str 返回c格式的字符串的操作&#xff1a; 我们来看 rfind 和 substr 的操作&#xff1a; string类非成员函数 我们来看 r…

REDHAWK——组件

文章目录 前言一、REDHAWK 核心资产1、REDHAWK 基本组件2、REDHAWK 基本设备3、REDHAWK 基本波形4、REDHAWK 共享库5、REDHAWK 设备依赖性 二、创建组件项目1、组件向导2、组件描述符3、端口4、属性5、记录6、为组件生成代码 三、创建并运行 Hello World 组件 前言 组件是模块…