【办公类-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-"相册"-添加路径-创建-更改背景色-应用到全部等,不知道快多少,还可以反复生成。

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

相关推荐
GFCGUO5 分钟前
ubuntu18.04运行OpenPCDet出现的问题
linux·python·学习·ubuntu·conda·pip
985小水博一枚呀2 小时前
【深度学习基础模型】神经图灵机(Neural Turing Machines, NTM)详细理解并附实现代码。
人工智能·python·rnn·深度学习·lstm·ntm
萧鼎3 小时前
Python调试技巧:高效定位与修复问题
服务器·开发语言·python
IFTICing3 小时前
【文献阅读】Attention Bottlenecks for Multimodal Fusion
人工智能·pytorch·python·神经网络·学习·模态融合
大神薯条老师3 小时前
Python从入门到高手4.3节-掌握跳转控制语句
后端·爬虫·python·深度学习·机器学习·数据分析
程序员爱德华3 小时前
Python环境安装教程
python
huanxiangcoco3 小时前
152. 乘积最大子数组
python·leetcode
萧鼎4 小时前
Python常见问题解答:从基础到进阶
开发语言·python·ajax
PythonFun4 小时前
Python技巧:如何避免数据输入类型错误
前端·python
kaikai_sk4 小时前
搜索引擎相关的一段实习经历
python