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

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 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图片

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


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


http://www.kler.cn/news/365091.html

相关文章:

  • 51单片机——OLED显示图片
  • 博弈论 C++
  • 虚拟机安装麒麟v10、配置网络、安装docker
  • 【Flutter】页面布局:线性布局(Row 和 Column)
  • MySQL查看当前客户端连接数的方法
  • 空间音频技术
  • 【Vue.js设计与实现】第三篇第9章:渲染器-简单Diff算法-阅读笔记
  • jupyter argparse问题
  • XML解析小坑记录[正则表达式解析]
  • 学习莫烦python---神经网络
  • 重生之“我打数据结构,真的假的?”--3.栈和队列(无习题)
  • PyTorch 介绍
  • Unity Apple Vision Pro 自定义手势识别交互
  • Vuex 状态机
  • Http模块总体设计
  • C# SM2 加签、验签工具
  • 【SpringCloud】Seata微服务事务
  • 【Flutter】路由与导航:基础路由与导航
  • HTML5教程(一)- 网页与开发工具
  • 基于RK3588/算能BM1684 AI盒子:综合视频智能AI分析系统建设方案(三)安全帽、睡岗检测、电瓶车、吸烟场景
  • 51单片机——OLED显示图片
  • Python进阶知识3
  • 数字 图像处理算法的形式
  • 第二单元历年真题整理
  • vivado 接口带宽验证
  • 第五十四章 安全元素的详细信息 - DerivedKeyToken 详情