如果你需要在多个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 None
ps.PictureFill.Picture.EmbedImage.Image.Save("幻灯片图片/幻灯片图_"+str(i)+".png")
i += 1 # 判断形状是否为PictureShape类型
if isinstance(s, PictureShape): # 提取该类型图片
ps = s if isinstance(s, PictureShape) else None
ps.EmbedImage.Image.Save("幻灯片图片/幻灯片图_"+str(i)+".png")
i += 1 ppt.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中的图片,以便能更好地管理和利用这些视觉资源。


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

Python 提取PowerPoint文档中的图片的更多相关文章

  1. 第一节:python提取PDF文档中的图片

    由于项目需要将PDF文档当中的图片转换成图片,所以参考了这篇文章https://blog.csdn.net/qq_15969343/article/details/81673302后项目得以解决. 1 ...

  2. C# 提取Word文档中的图片

    C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...

  3. Aspose.Words提取word文档中的图片文件

    /// <summary> /// 提取word中的图片 /// </summary> /// <param name="filePath">w ...

  4. 如何通过C#/VB.NET从PowerPoint文档中提取图片

    PowerPoint是用于制作幻灯片(演示文稿)的应用软件,每张幻灯片中都可以包含文字.图形.图形.表格.声音和影像等多种信息.有时候我们发现在PPT里面有一些精美的图片,或者其他原因想要把PPT里面 ...

  5. 在LaTeX文档中插入图片的几种常用的方法

    LaTeX中一般只直接支持插入eps(Encapsulated PostScript)格式的图形文件, 因此在图片插入latex文档之前应先设法得到图片的eps格式的文件. 在LaTeX文档中插入图片 ...

  6. 使用Java POI来选择提取Word文档中的表格信息

    通过使用Java POI来提取Word(1992)文档中的表格信息,其中POI支持不同的ms文档类型,在具体操作中需要注意.本文主要是通过POI来提取微软2003文档中的表格信息,具体code如下(事 ...

  7. python、java、ruby、node等如何提取office文档中的内容?

    我相信大家都有过这样的需求,把doc.ppt.excel.pdf.txt中的文本内容提取出来.提取出来的文本内容可用于文档内容的全文索引,文档的基本内容摘要等.在度娘上搜索“如何提取文档内容”,确实有 ...

  8. 【.net 深呼吸】导出 Office 文档中的图片

    我们常用的 Office 文档其实就三种——Word.Excel.PowerPoint,分别对应的扩展名为:.docx..pptx..xlsx. 许多教程都告诉我们,要提取这些文件中的图片(其实像视频 ...

  9. 使用Python从Markdown文档中自动生成标题导航

    概述 知识与思路 代码实现 概述 Markdown 很适合于技术写作,因为技术写作并不需要花哨的排版和内容, 只要内容生动而严谨,文笔朴实而优美. 为了编写对读者更友好的文章,有必要生成文章的标题导航 ...

  10. 2018-10-04 [日常]用Python读取word文档中的表格并比较

    最近想对某些word文档(docx)的表格内容作比较, 于是找了一下相关工具. 参考Automate the Boring Stuff with Python中的word部分, 试用了python-d ...

随机推荐

  1. 网络安全公开数据集Maple-IDS,恶意流量检测数据集开放使用!

    Maple Dataset 枫叶数据集Maple Dataset枫叶数据集由东北林业大学网络安全实验室(https://maple.nefu.edu.cn/lab/)公开发布,是用于入侵检测评估的数据 ...

  2. Element Plus使用

    目录 Element Plus快速入门 常用组件 Element:是饿了么团队研发的,基于 Vue 3,面向设计师和开发者的组件库. 组件:组成网页的部件,例如 超链接.按钮.图片.表格.表单.分页条 ...

  3. 小tips:CSS3中的background-clip属性(背景的裁剪区域)

    CSS3中的background-clip属性,其主要是用来确定背景的裁剪区域,换句话说,就是如何控制元素背景显示区域. 语法如下: background-clip : border-box || p ...

  4. MoCov1: 无监督视觉表征学习的动量对比《Momentum Contrast for Unsupervised Visual Representation Learning》(MoCo、动量对比、动态字典、队列维护、对比损失InfoNCE)

    现在是2024年6月11日,21:49,刚找好要看的论文,师兄推荐的. 先占个坑,明天看,我累了(我没脑子了). 现在是6月12日,15:49,干正事了(又被别人影响了情绪,这不好,希望你改掉,好的, ...

  5. RxJS 系列 – Scheduler

    前言 大部分情况下, RxJS 都是用来处理异步执行的. 比如 Ajax, EventListener 等等. 但其实, 它也是可以同步执行的, 甚至 by default 它就是同步执行的 (下面会 ...

  6. RxJS 系列 – Filtering Operators

    前言 介绍完 RxJS 两大概念 Observable 和 Subject 之后, 篇幅最大的就是各种 Operators 了. 这篇先介绍比较简单的 Filter Operators. 请先看完上面 ...

  7. EF Core – 乐观并发

    前言 之前写过 EF Core 悲观并发, 这篇主要讲一下乐观并发. 乐观并发的机制可以看这篇. Why Need This? 如果你用 EF Core 做数据管理, 建议你每个 Entity 都配置 ...

  8. Spring —— 核心概念

    IoC (Inversion of Control) 控制反转 使用对象时,由主动new产生对象转换为由外部提供对象,对象的创建控制权由程序转移至外部,这种思想成为控制反转 Spring技术对IoC思 ...

  9. 2024 年 C# 高效开发:精选实用类库

    前言 在平时开发中,好的类库能帮助我们快速实现功能,C#有很多封装好的类库. 本文将介绍一些2024年特别受欢迎的C#类库,并分析各自的优点让我们编程写代码变的更轻松.更快捷. 快来看一看有没有大家常 ...

  10. 在 macOS上安装 MongoDB 社区版

    官网教程 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ 使用第三方 brew package manager 在 ...