当前位置: 首页 > news >正文

Python 快速提取PowerPoint文档中的图片

如果你需要在多个PowerPoint演示文稿中使用相同的图片,直接从原始PPT中提取并保存图片可以避免重复寻找和下载。此外,将PPT中的重要图片提取出来可以将其作为备份,以防原文件损坏或丢失。本文将通过以下两个示例介绍如何使用Python提取PPT文档中的图片。

文章目录

    • Python 提取指定幻灯片中的图片
    • Python 提取PPT文档中的所有图片

所需Python库Spire.Presentation for Python。该库支持多种PPT/PPTX文档处理操作,如创建、编辑、转换、保存等。可以直接通过以下pip命令安装它:

pip install Spire.Presentation

Python 提取指定幻灯片中的图片

要提取指定幻灯片中的图片,需要遍历幻灯片中所有形状并逐一判断其是否为 SlidePicturePictureShape 类型,如果是的话再通过对应方法提取并保存。步骤如下:

  1. 通过LoadFromFile()方法加载PPT文档
  2. 通过Presentation.Slides[index]属性获取指定幻灯片
  3. 遍历幻灯片中所有形状
  4. 判断形状是否为SlidePicture类型,如果是,则通过 SlidePicture.PictureFill.Picture.EmbedImage.Image.Save() 方法提取图片并保存
  5. 判断形状是否为PictureShape类型,如果是,则通过 PictureShape.EmbedImage.Image.Save() 方法提取图片并保存。

代码:

from spire.presentation.common import *
from spire.presentation import *# 加载PPT文档
ppt = Presentation()
ppt.LoadFromFile("工作汇报.pptx")# 获取第一张幻灯片
slide = ppt.Slides[0]i = 0
# 遍历幻灯片中所有形状
for s in slide.Shapes:# 判断形状是否为SlidePicture类型if isinstance(s, SlidePicture):# 提取该类型图片ps = s if isinstance(s, SlidePicture) else Noneps.PictureFill.Picture.EmbedImage.Image.Save("幻灯片图片/幻灯片图_"+str(i)+".png")i += 1# 判断形状是否为PictureShape类型if isinstance(s, PictureShape):# 提取该类型图片ps = s if isinstance(s, PictureShape) else Noneps.EmbedImage.Image.Save("幻灯片图片/幻灯片图_"+str(i)+".png")i += 1ppt.Dispose()

提取幻灯片图片

Python 提取PPT文档中的所有图片

一次性将PPT文档中的所有图片提取出来的操作相对比较简单,参考以下步骤:

  1. 通过LoadFromFile()方法加载PPT文档
  2. 通过Presentation.Images属性获取PPT文档中所有图片的集合
  3. 遍历图片集合,然后使用 IImageData.Image.Save() 方法将每一张图片保存到指定文件路径。

代码:

from spire.presentation.common import *
from spire.presentation import *# 加载PPT文档
ppt = Presentation()
ppt.LoadFromFile("工作汇报.pptx")# 遍历文档中所有图片
for i, image in enumerate(ppt.Images):# 提取图片并保存ImageName = "提取图片/图_"+str(i)+".png"image.Image.Save(ImageName)ppt.Dispose()

提取PPT图片

通过以上示例,可以实现通过编程自动提取PPT中的图片,以便能更好地管理和利用这些视觉资源。


关于更多Python操作PPT文档的示例可点击查看:Spire.Presentation for Python 中文教程


http://www.mrgr.cn/news/56916.html

相关文章:

  • 机器学习2
  • C#订阅mqtt主题
  • 2015年-2017年 计算机技术专业 程序设计题(算法题)实战_c语言程序设计数据结构程序设计分析
  • 禅道源码部署
  • C# OnnxRuntime yolo11 pest detection
  • LLM 量化新篇章:FlatQuant 的平坦之道
  • Python并发编程:threading模块详解
  • 我开源了Go语言连接数据库和一键生成结构体的包【实用】
  • 查看Chrome安装路
  • 天润融通知识库赋能一线客户运营,不是宝妈也可以成为育儿专家
  • 计算机专业大学四年的学习路线(非常详细),零基础入门到精通,看这一篇就够了
  • 低秩矩阵恢复
  • KCD81PJE1T92 SSD:企业级存储解决方案的卓越选择
  • Bench4Merge:一个提升自动驾驶车辆在复杂交通场景中并车能力的综合性评估平台。
  • 1.2 C++内存
  • 证明非平方整数阶射影平面关联矩阵的主对角线有t+1个1
  • k8s_Pod健康检查
  • Python Pandas 安装指南:快速入门与验证
  • 论文开题前的必备指南:如何做好充分准备
  • LeetCode题练习与总结:重新安排行程--332
  • 【c++丨STL】string类的使用
  • HarmonyOS鸿蒙分布式文件操作的时候权限问题
  • iOS 18.1新功能抢先看:控制中心大变身,睡眠呼吸暂停监测来袭
  • 经典动态规划问题:含手续费的股票买卖【从 O(n) 到 O(1) 的优化解析】
  • 多尺度建模:从理论到实践的深入探讨
  • 高客单价产品,Facebook广告投放应该怎么做?