如果你需要在多个PowerPoint演示文稿中使用相同的图片,直接从原始PPT中提取并保存图片可以避免重复寻找和下载。此外,将PPT中的重要图片提取出来可以将其作为备份,以防原文件损坏或丢失。本文将通过以下两个示例介绍如何使用Python提取PPT文档中的图片。
文章目录
- Python 提取指定幻灯片中的图片
- Python 提取PPT文档中的所有图片
所需Python库:Spire.Presentation for Python。该库支持多种PPT/PPTX文档处理操作,如创建、编辑、转换、保存等。可以直接通过以下pip命令安装它:
pip install Spire.Presentation
Python 提取指定幻灯片中的图片
要提取指定幻灯片中的图片,需要遍历幻灯片中所有形状并逐一判断其是否为 SlidePicture
或 PictureShape
类型,如果是的话再通过对应方法提取并保存。步骤如下:
- 通过
LoadFromFile()
方法加载PPT文档 - 通过
Presentation.Slides[index]
属性获取指定幻灯片 - 遍历幻灯片中所有形状
- 判断形状是否为
SlidePicture
类型,如果是,则通过SlidePicture.PictureFill.Picture.EmbedImage.Image.Save()
方法提取图片并保存 - 判断形状是否为
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文档中的所有图片提取出来的操作相对比较简单,参考以下步骤:
- 通过
LoadFromFile()
方法加载PPT文档 - 通过
Presentation.Images
属性获取PPT文档中所有图片的集合 - 遍历图片集合,然后使用
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 中文教程