【办公类-40-02】20240311 python模仿PPT相册功能批量插入照片,更改背景颜色 (家长会系列二)

作品展示------用Python插入PPT相册

背景需求:

马上就要家长会,我负责做会议前的照片滚动PPT,通常都是使用PPT的相册功能批量导入照片,

生成给一个新的PPT文件

更改背景颜色

设置4秒间隔,应用到全部

保存,改名字

我想用Python实现"PPT相册插入图片"的效果

参考:

1、AI对话大师

2、专业代码

2、python程序24:批量导入图片至一个PPT文件 - 知乎有时候一个在做PPT的时候,可能需要很多的图片导入到文件中,那么怎么做才能准确又高效呢?今天我们写一个python用于批量导入图片至每一页PPT中,并填充图片自动匹配纵横比。 这里需要引入模块: pip install pyth...https://zhuanlan.zhihu.com/p/642958843?utm_id=0

素材准备:

代码展示

python 复制代码
'''
家长会PPT:相册功能插入照片(保持原图长宽比,但适应幻灯片大小),背景颜色更改
作者:
1、https://zhuanlan.zhihu.com/p/642958843?utm_id=0
2、aI对话大师 、阿夏
时间:2024年3月11日
'''


from pptx import Presentation
from PIL import Image
import os

def create_slideshow(images_folder):
    prs = Presentation()

     # 设置幻灯片背景颜色为浅蓝色
    for slide in prs.slides:
        background = slide.background
        fill = background.fill
        fill.solid()
        fill.fore_color.rgb = (79, 129, 189)  # 浅蓝色的RGB值

    # 设置每页切换时间为4秒
    prs.slide_milliseconds = 4000


    # 获取文件夹中的所有图片文件
    image_files = [file for file in os.listdir(images_folder) if file.endswith(('.jpg', '.jpeg', '.png'))]

    for image_file in image_files:
        # 打开图片并获取其宽度和高度
        image_path = os.path.join(images_folder, image_file)
        image = Image.open(image_path)
        width, height = image.size

        # 设置16:9比例的幻灯片大小
        prs.slide_width = 16 * 914400  # 16 inches converted to EMUs
        prs.slide_height = 9 * 914400   # 9 inches converted to EMUs

        # 计算图片在幻灯片上的大小和位置
        slide_width = prs.slide_width
        slide_height = prs.slide_height
        slide_ratio = slide_width / slide_height
        image_ratio = width / height

        if slide_ratio > image_ratio:
            # 在幻灯片上添加带有黑色边框的图片
            left = (slide_width - slide_height * image_ratio) / 2
            top = 0
            prs.slides.add_slide(prs.slide_layouts[1])
            slide = prs.slides[-1]
            slide.shapes.add_picture(image_path, left, top, slide_height * image_ratio, slide_height)
        else:
            # 在幻灯片上添加带有黑色边框的图片
            left = 0
            top = (slide_height - slide_width / image_ratio) / 2
            prs.slides.add_slide(prs.slide_layouts[1])
            slide = prs.slides[-1]
            slide.shapes.add_picture(image_path, left, top, slide_width, slide_width / image_ratio)

    from pptx.dml.color import RGBColor

    # 设置幻灯片背景颜色为浅蓝色
    for slide in prs.slides:
        background = slide.background
        fill = background.fill
        fill.solid()
        fill.fore_color.rgb = RGBColor(173, 216, 230)  # 浅蓝色的RGB值

    # 设置每页切换时间为4秒
    prs.slide_milliseconds = 4000

    # 保存幻灯片为PPT文件
    prs.save(r'D:\家长会PPT\20240313中4班家长会相册.pptx')

# 传入存储图片的文件夹路径
create_slideshow(r'D:\家长会PPT\照片')

说明:

1向AI问了无数次,本文终于实现了"相册插入图片"+"背景颜色修改""自动保存pptx名称"三个功能,

2、幻灯片每页切换和插入循环音乐还没有实现......

感悟:

用Python代码几乎5秒就生成了PPT相册导入的照片的效果,比起手动点击的诸多步骤------新建PPT-"相册"-添加路径-创建-更改背景色-应用到全部等,不知道快多少,还可以反复生成。

技术提升效率,改变思维!!!

相关推荐
灏瀚星空22 分钟前
基于Python的量化交易实盘部署与风险管理指南
开发语言·python
Amo Xiang2 小时前
《100天精通Python——基础篇 2025 第18天:正则表达式入门实战,解锁字符串处理的魔法力量》
python·正则表达式·re
敲键盘的小夜猫3 小时前
Python核心数据类型全解析:字符串、列表、元组、字典与集合
开发语言·python
apcipot_rain4 小时前
【应用密码学】实验五 公钥密码2——ECC
前端·数据库·python
小彭律师4 小时前
门禁人脸识别系统详细技术文档
笔记·python
鸿业远图科技5 小时前
分式注记种表达方式arcgis
python·arcgis
别让别人觉得你做不到6 小时前
Python(1) 做一个随机数的游戏
python
小彭律师8 小时前
人脸识别门禁系统技术文档
python
张小九999 小时前
PyTorch的dataloader制作自定义数据集
人工智能·pytorch·python