当前位置: 首页 > news >正文

【教学类-73-02】20240805广口瓶(宽口瓶)02

 

背景需求:

瓶子里的春天呀! - 小红书 (xiaohongshu.com)https://www.xiaohongshu.com/explore/63ef87f8000000000703acae?app_platform=android&ignoreEngage=true&app_version=8.47.0&share_from_user_hidden=true&xsec_source=app_share&type=normal&xsec_token=CBpundBBTrUJLdU3L5pYm0gLJYMp3HokY9qPe994qdlwI=&author_share=1&xhsshare=WeixinSession&shareRedId=ODszMTs4Nk82NzUyOTgwNjg3OTlHS0xC&apptime=1722745595&share_id=4be83769e22643f78607bc3976f0b4abicon-default.png?t=N7T8https://www.xiaohongshu.com/explore/63ef87f8000000000703acae?app_platform=android&ignoreEngage=true&app_version=8.47.0&share_from_user_hidden=true&xsec_source=app_share&type=normal&xsec_token=CBpundBBTrUJLdU3L5pYm0gLJYMp3HokY9qPe994qdlwI=&author_share=1&xhsshare=WeixinSession&shareRedId=ODszMTs4Nk82NzUyOTgwNjg3OTlHS0xC&apptime=1722745595&share_id=4be83769e22643f78607bc3976f0b4ab

前期用用通义万相下载了一堆空瓶子

【教学类-73-01】20240804镂空瓶子01-CSDN博客文章浏览阅读501次,点赞12次,收藏13次。【教学类-73-01】20240804镂空瓶子01https://blog.csdn.net/reasonsummer/article/details/140895392?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22140895392%22%2C%22source%22%3A%22reasonsummer%22%7D

感觉瓶子身体很细,幼儿镂空剪的地方小。

改为制作一些宽口瓶,更符合实际教学需求

更换关键词

密封玻璃圆肚罐,简单笔画,卡通,黑白轮廓,轮廓加粗,轮廓加粗,未着色,插图,线条画,没有背景,没有颜色,黑白漫画线条艺术:,空背景,粗轮廓,清晰的线条,矢量线。简单,大,
 

这套图片都是宽肚瓶了,不过明显每张背景都是灰色的(为了凸显玻璃材质的白色高光,所以背景必须是灰色的)

所有图片都用ps修图

瓶子背景和瓶子内部都修改成白色(255,255,255)

素材准备:

200张图片,修了足足6个小时,累死了。(下次把关键词里的”没有背景”改成“白色背景”)

代码展示:

'''
宽口瓶子广口瓶
星火讯飞、阿夏
2024年8月4日
'''import os
from PIL import Image, ImageDrawprint('----1、房屋切割成左右对称两片------------')path=r'C:\Users\jg2yXRZ\OneDrive\桌面\20240805广口瓶'
old_path=path+r'\02修图'# 获取文件夹下的所有图片文件
image_files = [os.path.join(old_path, f) for f in os.listdir(old_path) if f.endswith(('.jpg', '.jpeg', '.png'))]
print(image_files)# 合并图案import os,time
import shutil
from docx import Document
from docx.shared import Cm
from PIL import Image
from PyPDF2 import PdfFileMerger, PdfFileReaderfrom PIL import Image, ImageDraw, ImageFont
import os,random# 将图片拆成8个一组
grouped_files = [image_files[i:i + 2] for i in range(0, len(image_files), 2)]
print(len(grouped_files))# 创建临时文件夹
new_folder = path+r'\零时文件夹'
os.makedirs(new_folder, exist_ok=True)print('----3、插入docx,制作pdf------------')
# 处理每一组图片
for group_index, group in enumerate(grouped_files):# 创建新的Word文档doc = Document(path+r'\宽口瓶.docx')# print(group)# 遍历每个单元格,并插入图片for cell_index, image_file in enumerate(group):# 计算图片长宽(单位:厘米)# 如果是空格,就跳过if not image_file:continue# 插入图片到单元格table = doc.tables[0]cell = table.cell(int(cell_index / 2), cell_index % 2)# 如果第一行有2个格子,两个数字都写2cell_paragraph = cell.paragraphs[0]cell_paragraph.clear()run = cell_paragraph.add_run()run.add_picture(image_file, width=Cm(14.13), height=Cm(19.54))# 保存Word文档doc.save(os.path.join(new_folder, f'{group_index + 1:03d}.docx'))# 将10个docx转为PDF
import os
from docx2pdf import convert
from PyPDF2 import PdfFileMergerpdf_output_path = path+fr'\\01宽口瓶{int(len(grouped_files))}张共{int(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'))time.sleep(2)# 合并零时文件里所有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()# 删除输出文件夹shutil.rmtree(new_folder)
time.sleep(2)

为了适合A4大小,每张正方形1:1图片都上下拉长了,变成长方形的瓶子。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 类和对象——日期类实现
  • 从一到无穷大 #32 TimeCloth,云上的快速 Point-in-Time Recovery
  • [Meachines] [Easy] shocker CGI-BIN Shell Shock + Perl权限提升
  • python rsa如何安装
  • live2d C++ sdk 分析
  • 高仲富:49岁搞AI,白天种菜卖菜,晚上学数学搞程序
  • 都2024年了,SQL语句还需要手写吗?
  • 【限免】通信信号与干扰信号【附MATLAB代码】
  • python 图片爬虫记录
  • 实时数仓分层架构详解
  • 【Python】常用的pdf提取库介绍对比
  • 电子电气架构 --- SOVD在域控制器的应用
  • 缓存一致性问题
  • tcpdump使用指南
  • 前端的学习-CSS(二)-弹性盒子-flex
  • $translatePartialLoader加载失败及解决方式
  • @angular/forms 源码解析之双向绑定
  • 【技术性】Search知识
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • HashMap ConcurrentHashMap
  • Java教程_软件开发基础
  • java取消线程实例
  • opencv python Meanshift 和 Camshift
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • yii2中session跨域名的问题
  • 分布式任务队列Celery
  • 给新手的新浪微博 SDK 集成教程【一】
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 使用 QuickBI 搭建酷炫可视化分析
  • 栈实现走出迷宫(C++)
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # Redis 入门到精通(七)-- redis 删除策略
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (03)光刻——半导体电路的绘制
  • (LeetCode 49)Anagrams
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (理论篇)httpmoudle和httphandler一览
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三)uboot源码分析
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十一)手动添加用户和文件的特殊权限
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (译)2019年前端性能优化清单 — 下篇
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)创业的注意事项
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net framework 4.8 开发windows系统服务
  • .Net Remoting(分离服务程序实现) - Part.3
  • .Net 基于MiniExcel的导入功能接口示例
  • .Net的DataSet直接与SQL2005交互
  • .pop ----remove 删除
  • .ui文件相关