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

作品展示——用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 osdef create_slideshow(images_folder):prs = Presentation()# 设置幻灯片背景颜色为浅蓝色for slide in prs.slides:background = slide.backgroundfill = background.fillfill.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 EMUsprs.slide_height = 9 * 914400   # 9 inches converted to EMUs# 计算图片在幻灯片上的大小和位置slide_width = prs.slide_widthslide_height = prs.slide_heightslide_ratio = slide_width / slide_heightimage_ratio = width / heightif slide_ratio > image_ratio:# 在幻灯片上添加带有黑色边框的图片left = (slide_width - slide_height * image_ratio) / 2top = 0prs.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 = 0top = (slide_height - slide_width / image_ratio) / 2prs.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.backgroundfill = background.fillfill.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.mzph.cn/news/738814.shtml

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

相关文章

springboot单体项目链路日志跟踪及接口耗时

最近接触一个新的传统项目,在联调过程中,查看日志特别不方便,既无trackId,即无接口耗时,所以写了该博客。话不多说,直接上代码 1、实体类user package com.yk.domain;import lombok.Data;Data public cla…

【IVA】人工智能领域常用的术语(1)

在人工智能和机器学习领域,"检测"、"识别"和"分类"是常用的术语,它们在问题解决中有着不同的含义: 检测(Detection):检测是指在图像或视频中定位和识别特定目标的过程。目标…

Hadoop伪分布式配置--没有DataNode或NameNode

一、原因分析 重复格式化NameNode 二、解决方法 1、输入格式化NameNode命令,找到data和name存放位置 ./bin/hdfs namenode -format 2、删除data或name(没有哪个删哪个) sudo rm -rf data 3、重新格式化NameNode 4、重新启动即可。

sheng的学习笔记- AI-类别不平衡问题

目录:sheng的学习笔记-AI目录-CSDN博客 什么是类别不平衡问题 类别不平衡(class-imbalance),也叫数据倾斜,数据不平衡,就是指分类任务中不同类别的训练样例数目差别很大的情况。 例如有998个反例&#xf…

vue3全局引入element-plus后怎么使用Message进行消息提示

全局引入 main.ts import element-plus/dist/index.css 在需要使用提示的组件中引入 import { ElMessage } from element-plus 使用举例

Verilog刷题笔记37

题目:3位二进制加法器 Now that you know how to build a full adder, make 3 instances of it to create a 3-bit binary ripple-carry adder. The adder adds two 3-bit numbers and a carry-in to produce a 3-bit sum and carry out. To encourage you to actua…

html5cssjs代码 001 第一个网页

html5&css&js代码 001 第一个网页 一、代码二、解释 这是第一个网页&#xff0c;也是一个模板。 一、代码 <!-- 声明文档类型 --> <!DOCTYPE html> <html lang "zh-cn" ><!-- 页面头部开始 --><head ><!-- 设置页面标题 …

@Conditional注解详解

目录 一、Conditional注解作用 二、Conditional源码解析 2.1 Conditional源码 2.2 Condition源码 三、Conditional案例 3.1 Conditional作用在类上案例 3.1.1 配置文件 3.1.2 Condition实现类 3.1.3 Bean内容类 3.1.4 Config类 3.1.5 Controller类 3.1.6 测试结果 3…

Visual grounding-视觉定位任务介绍

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

Spring Cloud Alibaba微服务从入门到进阶(一)

Springboot三板斧 1、加依赖 2、写注解 3、写配置 Spring Boot Actuator Spring Boot Actuator 是 Spring Boot 提供的一系列用于监控和管理应用程序的工具和服务。 SpringBoot导航端点 其中localhost:8080/actuator/health是健康检查端点&#xff0c;加上以下配置&#xf…

基于element-plus的Dialog选择控件

翻看之前工程师写的vue2的代码&#xff0c;很多都是复制、粘贴&#xff0c;也真是搞不懂&#xff0c;明明可以写一个控件&#xff0c;不就可以重复使用。很多前端总喜欢element搞一下&#xff0c;ant-design也搞一下&#xff0c;有啥意义&#xff0c;控件也不是自己写的&#x…

Python递归函数你用对了吗?

1.递归函数 递归函数&#xff1a;函数自己调用自己 2.需求 使用函数的方式&#xff0c;计算数字n的阶乘 # 5&#xff01; """ 5! 1 * 2 * 3 * 4 * 5 4! 1 * 2 * 3 * 4 3! 1 * 2 * 3 2! 1 * 2 1! 1综上可以总结出&#xff1a;n! n * (n - 1) "&qu…

什么是防静电晶圆隔离膜?一分钟让你了解抗静电晶圆隔离纸

防静电晶圆隔离膜&#xff0c;也被称为防静电蓄积纸、硅片纸、半导体晶圆盒内缓冲垫片等多种名称&#xff0c;是半导体制造和运输过程中的一种重要辅助材料。 该隔离膜具备多种特性&#xff0c;如防静电、无尘、不掉屑、强韧耐用等&#xff0c;这些特性使其在半导体制造和运输中…

网络安全之从原理看懂XSS

01、XSS的原理和分类 跨站脚本攻击XSS(Cross Site Scripting)&#xff0c;为了不和层叠样式表(Cascading Style Sheets&#xff0c;CSS)的缩写混淆 故将跨站脚本攻击缩写为XSS&#xff0c;恶意攻击者往Web页面里插入恶意Script代码&#xff0c;当用户浏览该页面时&#xff0c…

Word转PDF保持图片原有清晰度

目录 1、需要的软件 2、配置Acrobat PDFMaker 3、配置Acrobat Distiller 4、更改Acrobat PDFMaker中的首选项 5、将word转换成pdf 1、需要的软件 利用Adobe Acrobat DC工具。 打开word&#xff0c;选择Acrobat的插件&#xff0c;选择首选项。 如果没有出现Acrobat插件也…

AI辅助研发:2024年科技与工业领域的新革命

随着人工智能&#xff08;AI&#xff09;技术的不断进步&#xff0c;2024年AI辅助研发成为了科技界和工业界广泛关注的焦点。这一年&#xff0c;从医药研发到汽车设计&#xff0c;从软件开发到材料科学&#xff0c;AI的身影无处不在&#xff0c;正逐步改变着研发领域的面貌。这…

Python 基础语法:基本数据类型(元组)

1 元组&#xff08;Tuples&#xff09;概述 1.1 元组的定义与特点 元组&#xff08;Tuples&#xff09;是Python中的一个内置数据类型&#xff0c;用于存储一系列有序的元素。元组中的元素可以是任何类型&#xff0c;包括数字、字符串、列表等&#xff0c;且元素之间用逗号…

java并发编程知识点汇总

文章目录 1. Java8新特性1.1 Lambda表达式1.2 函数式接口1.3 Stream流式计算&#xff0c;应用了上述函数式接口能力1.4 接口增强 2. 常用原子类3. 多线程与高并发-juc3.1 谈一谈对volatile的理解3.2 谈一谈对JMM的理解3.3 谈一谈对CAS及底层原理的理解3.4 谈一谈对ABA问题及原子…

Vue 图片加载失败显示默认图片

方法一&#xff1a;通过onerror属性加载默认图片 <img :src"img" :onerror"defaultImg" /><script> export default {name: testImgError,data() {return {img: , // 访问图片的ip地址defaultImg: this.src ${require(/assets/images/right/…

VOS3000外呼系统 AXB工作原理

VOS AXB 模块适用于语音市场直连运营商或虚拟运营商 X 号平台的业务需求 与 VOS 系统无缝集成&#xff0c;无需独立服务器部署&#xff0c;节约硬件&#xff0c;网络成本 单机支持不低于 2,000 并发 AXB 呼叫&#xff0c;性能是市面常见 AXB 产品的 2-3 倍 支持设定在呼叫接…