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

news2024/10/6 8:23:33

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

2ac0072473ff43dcaf900c3d99b36cb1.png

 

背景需求:

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

54471ce6c4944268a691ecfa90c66d37.png

生成给一个新的PPT文件

fa7f9f72064743d7b6e1befa93c7a849.png

更改背景颜色

d49dad9e00bc49e7801cea59cea07ea1.png

c2742667dfed491a946949a12ab2ea01.png

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

4734026b836547218563656729a8627e.png

保存,改名字

834c86ffbf2a43199f0dcb1dd8f86b18.png

 

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

参考:

1、AI对话大师

5a356e61b51840a086b25b2c97ea0244.png

2、专业代码

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

素材准备:

54aeb2321ead475c8f678dc56eb5a5d1.png7ada6416b85e4deab54fd5d66613a14d.png

 

代码展示

'''
家长会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\照片')

36c43e9c870c4de39d57d2d225896e9a.png

8fbbc7edee6d41bc854bacdf75670acb.pngc6a820d09a4e4396b9e21f04b04280e8.png

说明:

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

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

 

感悟:

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

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

 

 

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

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

相关文章

Midjourney从入门到实战:图像生成命令及参数详解

目录 0 专栏介绍1 Midjourney Bot常用命令2 Midjourney绘图指令格式3 Midjourney绘图指令参数3.1 模型及版本3.2 画面比例3.3 风格化3.4 图片质量3.5 混乱值3.6 随机数种子3.7 重复贴图3.8 停止3.8 垫图权重3.9 提示词权重分割 0 专栏介绍 🔥Midjourney是目前主流的…

FastAPI 学习笔记

FastAPI 学习笔记 0. 引言1. 快速开始2. 升级示例代码 0. 引言 在 Python 这个充满活力的生态系统中,FastAPI 应运而生,它是一个现代的、快速的 Web 框架,专注于构建 RESTful API。 无论你是一名有经验的 Python 开发人员,还是一…

Flask python 开发篇:项目布局

一、背景简介 Flask应用程序可以像单个文件一样简单。就像上一篇简单实现一个接口一样,所有的东西都在一个python文件内; 然而,当项目越来越大的时候,把所有代码放在单个文件中就有点不堪重负了。 Python 项目使用 包 来管理代码…

2023年第三届中国高校大数据挑战赛第二场赛题D题赛题:行业职业技术培训能力评价(成品论文 代码与思路 视频讲解)

赛题 中国是制造业大国,产业门类齐全,每年需要培养大量的技能娴熟的技术工人进入工厂。某行业在全国有多所不同类型(如国家级、省级等)的职业技术培训学校,进行 5 种技能培训。学员入校时需要进行统一的技能考核&…

Python之禅——跟老吕学Python编程

Python之禅——跟老吕学Python编程 Python之禅1.**Beautiful is better than ugly.**2.**Explicit is better than implicit.**3.**Simple is better than complex.**4.**Complex is better than complicated.**5.**Flat is better than nested.**6.**Spare is better than den…

每日学习笔记:C++ STL 的List

定义 特点 操作函数 关于c.merge(c2)的分析,详见: 。。。。 C list merge()用法及代码示例 - 纯净天空 (vimsky.com) 异常安全性 运用实例

WPF Button去除按钮边框,添加下划线

<Button Width"45" Height"25" FontSize"20" Background"Transparent" BorderBrush"Transparent" Foreground"#FFC9A322" Click"Btn_Retry_Click" ><TextBlock><Underline>重试</…

Redis常见数据类型下

目录 Hash 哈希 常用指令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET 内部编码 Hash类型和关系型数据库 缓存方式对比 List 列表 特点 常用命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP / RPOP LINDEX LINSERT 阻塞(BLOCK)版…

STM32存储左右互搏 SPI总线读写SD/MicroSD/TF卡

STM32存储左右互搏 SPI总线读写SD/MicroSD/TF卡 SD/MicroSD/TF卡是基于FLASH的一种常见非易失存储单元&#xff0c;由接口协议电路和FLASH构成。市面上由不同尺寸和不同容量的卡&#xff0c;手机领域用的TF卡实际就是MicroSD卡&#xff0c;尺寸比SD卡小&#xff0c;而电路和协…

中兴服务器R6900 G5实力领先,有效助力大模型训练

日前&#xff0c;中兴通讯推出专为大规模模型训练而设计的旗舰GPU服务器—R6900 G5。据悉&#xff0c;该中兴服务器具备卓越的计算性能、高速网络通信能力以及创新的能效表现&#xff0c;有望为人工智能和深度学习等领域带来全新的突破。 R6900 G5搭载了中兴通讯最新一代的英特…

开源的java视频处理库介绍

本文将为您详细讲解 Java 开源的视频处理库&#xff0c;以及它们的特点、区别和应用场景。Java 社区提供了多种视频处理库&#xff0c;这些库可以帮助您在 Java 应用程序中实现视频的录制、编辑、转换和播放等功能。 1. JCodec 特点 - 基于 Java 的视频编解码库。 - 支…

嵌入式C语言(八)

继续来看看新的属性&#xff1a;weak 这个符号知道是弱&#xff0c;但是这个是干嘛的呢&#xff1f;我们先来学习一下强符号和弱符号 强符号和弱符号 GNU C通过weak属性声明&#xff0c;**可以将一个强符号转换为弱符号。**使用方法如下。 void __attribute__((weak)) func(…

【OpenGL手册15】 多光源

目录 一、说明二、定向光三、点光源四、合并结果练习 一、说明 我们在前面的教程中已经学习了许多关于OpenGL中光照的知识&#xff0c;其中包括冯氏着色(Phong Shading)、材质(Material)、光照贴图(Lighting Map)以及不同种类的投光物(Light Caster)。在这一节中&#xff0c;我…

回收站删除的文件怎么恢复?这3个方法可行!

“求助&#xff01;回收站删除的文件还有没有机会恢复呀&#xff1f;我不小心将回收站清空了&#xff0c;但是有一些很重要的文件还在里面&#xff0c;应该怎么恢复它们啊&#xff01;” 在使用电脑的过程中&#xff0c;我们难免会遇到误删文件的情况。而当文件被删除并清空回收…

c++: 引用能否替代指针? 详解引用与指针的区别.

文章目录 前言1. 引用和指针的最大区别:引用不能改变指向2. 引用和指针在底层上面是一样的3. 引用和指针在sizeof面前大小不同4. 有多级指针,没有多级引用5.引用是引用的实体,指针会向后偏移同一个类型的大小 总结 前言 新来的小伙伴如果不知道引用是什么?可以看我的上一篇文…

Kubernetes | 起源 | 组件详解

起源 起源&#xff1a; Kubernetes&#xff08;常简称为K8s&#xff09;起源于Google内部的Borg项目&#xff0c;是一个开源的容器编排引擎&#xff0c;于2014年首次对外发布。 Google Borg Google Borg 是 Google 内部开发和使用的大规模集群管理系统&#xff0c;用于管理和运…

锐捷 EWEB auth 远程命令执行漏洞复现

一、漏洞信息 漏洞名称:锐捷 EWEB auth 远程命令执行漏洞 漏洞类别:远程代码执行 风险等级:高危 二、漏洞描述 锐捷睿易是锐捷网络针对商业市场的子品牌。拥有易网络、交换机、路由器、无线、安全、云服务六大产品线,解决方案涵盖商贸零售、酒店、KTV、网吧、监控安防…

GPT出现Too many requests in 1 hour. Try again later.

换节点 这个就不用多说了&#xff0c;你都可以上GPT帐号了&#xff0c;哈…… 清除cooki 然后退出账号&#xff0c;重新登录即可

KBL610-ASEMI开关电源专用KBL610

编辑&#xff1a;ll KBL610-ASEMI开关电源专用KBL610 型号&#xff1a;KBL610 品牌&#xff1a;ASEMI 封装&#xff1a;KBL-4 最大重复峰值反向电压&#xff1a;1000V 最大正向平均整流电流(Vdss)&#xff1a;6A 功率(Pd)&#xff1a;中小功率 芯片个数&#xff1a;4 …

encoding和embedding的区别

本文作者&#xff1a; slience_me 文章目录 encoding和embedding的区别EmbeddingEncoding总结 encoding和embedding的区别 “Embedding” 和 “Encoding” 是两个在计算机科学和机器学习领域中常用的术语&#xff0c;它们虽然有些相似&#xff0c;但指代的概念和用途有所不同。…