当您需要在别的地方重复利用 powerpoint 中的图片时,那么将其中的图片提取出来是很有必要的操作。提取后,您就可以灵活地在原始 ppt 文件之外使用这些图片,从而在不同的项目中最大限度地发挥它们的价值。本文将介绍如何使用 spire.presentation for python 通过代码从 powerpoint 文档中提取图片。
安装 spire.presentation for python
本教程需要用到 spire.presentation for python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 vs code 中。
pip install spire.presentation
如果您不确定如何安装,请参考本教程:如何在 vs code 中安装 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 天的临时许可证。