【教学类-73-01】20240804镂空瓶子01

背景需求:

瓶子里的春天呀! - 小红书 (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=4be83769e22643f78607bc3976f0b4ab

首先用通义万相下载了一堆空瓶子

部分图片黑色多,白色少,

所有图片都用ps修图

尽量让中间的瓶内空白部分多一点

素材准备:

代码展示:

python 复制代码
'''
黑白瓶子
星火讯飞、阿夏
2024年8月4日
'''


import os
from PIL import Image, ImageDraw

print('----1、房屋切割成左右对称两片------------')

path=r'C:\Users\jg2yXRZ\OneDrive\桌面\黑白瓶子'
old_path=path+r'\01黑白瓶子'


# 获取文件夹下的所有图片文件
image_file = [os.path.join(old_path, f) for f in os.listdir(old_path) if f.endswith(('.jpg', '.jpeg', '.png'))]
print(image_file)

# 合并图案

import os,time
import shutil
from docx import Document
from docx.shared import Cm
from PIL import Image
from PyPDF2 import PdfFileMerger, PdfFileReader

from PIL import Image, ImageDraw, ImageFont
import os,random



image_files=[]
for a in range(len(image_file)):    
    image_files.append(image_file[a])
    image_files.append('')
print(image_files)
print(len(image_files))


# 将图片拆成8个一组
grouped_files = [image_files[i:i + 6] for i in range(0, len(image_files), 6)]
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个格子,两个数字都写2
        cell_paragraph = cell.paragraphs[0]
        cell_paragraph.clear()
        run = cell_paragraph.add_run()
        run.add_picture(image_file, width=Cm(9.75), height=Cm(9.35))
        
    # 保存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 PdfFileMerger

pdf_output_path = path+fr'\\01空瓶子{int(len(grouped_files))}张共{int(len(image_files)/2)}图.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)

把瓶子中间镂空,背后衬纸,然后用彩色纸片从下塞入,模拟瓶中的彩色果汁

相关推荐
qyzm6 分钟前
Codeforces Round 1073 (Div. 2)
数据结构·python·算法
JK Chen13 分钟前
faster_whisper,视频转文字,并生成字幕文件
python·whisper·音视频
做怪小疯子8 小时前
华为笔试0429
python·numpy
Warson_L8 小时前
Dictionary
python
寒山李白10 小时前
解决 python-docx 生成的 Word 文档打开时弹出“无法读取内容“警告
python·word·wps·文档·docx·qoder
2401_8323655211 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
Sirius.z11 小时前
第J3周:DenseNet121算法详解
python
2301_7796224111 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_7662834412 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
小康小小涵13 小时前
基于ESP32S3实现无人机RID模块底层源码编译
linux·开发语言·python