当您需要在别的地方重复利用 PowerPoint 中的图片时,那么将其中的图片提取出来是很有必要的操作。提取后,您就可以灵活地在原始 PPT 文件之外使用这些图片,从而在不同的项目中最大限度地发挥它们的价值。本文将介绍如何使用 Spire.Presentation for Python 通过代码从 PowerPoint 文档中提取图片。
安装 Spire.Presentation for Python
本教程需要用到 Spire.Presentation for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Presentation for Python
Python 提取 PPT 文件中的所有图片
要从整个 PPT 演示文稿中提取图片,需要使用 Presentation.Images 属性获取文档中所有图片的集合。然后遍历集合中的元素,并调用 IImageData.Image.Save() 方法将每个元素保存为一个图片文件。具体步骤如下:
- 创建一个 Presentation 类的对象。
- 使用 Presentation.LoadFromFile() 方法加载 PPT 文档。
- 使用 Presentation.Images 属性获取文档中所有图片的集合。
- 遍历集合中的元素,并使用 IImageData.Image.Save() 方法将每个元素保存为一个图像文件。
- Python
from spire.presentation.common import *
from spire.presentation import *
# 创建Presentation对象
ppt = Presentation()
# 加载PPT文档
ppt.LoadFromFile("示例.pptx")
# 遍历文档中所有图片
for i, image in enumerate(ppt.Images):
# 提取图片
ImageName = "提取图片/图_"+str(i)+".png"
image.Image.Save(ImageName)
ppt.Dispose()
Python 提取指定幻灯片中的图片
要从指定幻灯片中提取图片,需要遍历幻灯片上的所有形状,并找到 SlidePicture 或 PictureShape 类型的形状,然后使用 SlidePicture.PictureFill.Picture.EmbedImage.Image.Save() 或 PictureShape.EmbedImage.Image.Save() 方法将其保存为图像文件。具体步骤如下:
- 创建一个 Presentation 类的对象。
- 使用 Presentation.LoadFromFile() 方法加载 PPT 文档。
- 使用 Presentation.Slides[int] 属性获取指定的幻灯片。
- 遍历幻灯片上的所有形状,并确定这些形状是否为 SlidePicture 或 PictureShape 类型。
- 如果是,则使用 SlidePicture.PictureFill.Picture.EmbedImage.Image.Save() 或 PictureShape.EmbedImage.Image.Save() 方法保存这些图片。
- Python
from spire.presentation.common import *
from spire.presentation import *
# 创建Presentation对象
ppt = Presentation()
# 加载PPT文档
ppt.LoadFromFile("示例.pptx")
# 获取指定幻灯片
slide = ppt.Slides[1];
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()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。