码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【办公类-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…icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/642958843?utm_id=0

    素材准备:

    54aeb2321ead475c8f678dc56eb5a5d1.png7ada6416b85e4deab54fd5d66613a14d.png

    代码展示

    1. '''
    2. 家长会PPT:相册功能插入照片(保持原图长宽比,但适应幻灯片大小),背景颜色更改
    3. 作者:
    4. 1、https://zhuanlan.zhihu.com/p/642958843?utm_id=0
    5. 2、aI对话大师 、阿夏
    6. 时间:2024年3月11日
    7. '''
    8. from pptx import Presentation
    9. from PIL import Image
    10. import os
    11. def create_slideshow(images_folder):
    12. prs = Presentation()
    13. # 设置幻灯片背景颜色为浅蓝色
    14. for slide in prs.slides:
    15. background = slide.background
    16. fill = background.fill
    17. fill.solid()
    18. fill.fore_color.rgb = (79, 129, 189) # 浅蓝色的RGB值
    19. # 设置每页切换时间为4秒
    20. prs.slide_milliseconds = 4000
    21. # 获取文件夹中的所有图片文件
    22. image_files = [file for file in os.listdir(images_folder) if file.endswith(('.jpg', '.jpeg', '.png'))]
    23. for image_file in image_files:
    24. # 打开图片并获取其宽度和高度
    25. image_path = os.path.join(images_folder, image_file)
    26. image = Image.open(image_path)
    27. width, height = image.size
    28. # 设置16:9比例的幻灯片大小
    29. prs.slide_width = 16 * 914400 # 16 inches converted to EMUs
    30. prs.slide_height = 9 * 914400 # 9 inches converted to EMUs
    31. # 计算图片在幻灯片上的大小和位置
    32. slide_width = prs.slide_width
    33. slide_height = prs.slide_height
    34. slide_ratio = slide_width / slide_height
    35. image_ratio = width / height
    36. if slide_ratio > image_ratio:
    37. # 在幻灯片上添加带有黑色边框的图片
    38. left = (slide_width - slide_height * image_ratio) / 2
    39. top = 0
    40. prs.slides.add_slide(prs.slide_layouts[1])
    41. slide = prs.slides[-1]
    42. slide.shapes.add_picture(image_path, left, top, slide_height * image_ratio, slide_height)
    43. else:
    44. # 在幻灯片上添加带有黑色边框的图片
    45. left = 0
    46. top = (slide_height - slide_width / image_ratio) / 2
    47. prs.slides.add_slide(prs.slide_layouts[1])
    48. slide = prs.slides[-1]
    49. slide.shapes.add_picture(image_path, left, top, slide_width, slide_width / image_ratio)
    50. from pptx.dml.color import RGBColor
    51. # 设置幻灯片背景颜色为浅蓝色
    52. for slide in prs.slides:
    53. background = slide.background
    54. fill = background.fill
    55. fill.solid()
    56. fill.fore_color.rgb = RGBColor(173, 216, 230) # 浅蓝色的RGB值
    57. # 设置每页切换时间为4秒
    58. prs.slide_milliseconds = 4000
    59. # 保存幻灯片为PPT文件
    60. prs.save(r'D:\家长会PPT\20240313中4班家长会相册.pptx')
    61. # 传入存储图片的文件夹路径
    62. create_slideshow(r'D:\家长会PPT\照片')

    36c43e9c870c4de39d57d2d225896e9a.png

    8fbbc7edee6d41bc854bacdf75670acb.pngc6a820d09a4e4396b9e21f04b04280e8.png

    说明:

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

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

    感悟:

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

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

  • 相关阅读:
    DJ12-2-2 算术运算指令
    pandas教程:Apply:General split-apply-combine 通常的分割-应用-合并
    vue2.x引入threejs
    当Web3的人们高喊数据工具优化,如何用UGC引领数据服务趋势?
    ubuntu22.04安装公司安全VPN的方案
    串口发送&串口发送+接收&串口收发HEX数据包&串口收发文本数据包----USART
    JCL入门教程
    2022年企业数字化技术应用 5 大趋势丨三叠云
    redis查询慢,你们是如何排查优化的?(总结篇)
    Elementor Pro许可证
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/136637128
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号