分步骤教你用python一步步提取PPT中的图片

以下是详细的“分步骤教你用python一步步提取PPT中的图片”的攻略:

一、获取PPT文件并导入必要的库

首先需要用Python获取要提取图片的PPT文件,可以使用Python的osglob库来读取文件。接下来,我们需要导入pptxPIL这两个库,pptx库是Python处理PPT文件的重要库,PIL库用来处理图片。

import os
from pptx import Presentation
from PIL import Image

二、遍历PPT文件中所有的幻灯片

遍历幻灯片需要使用pptx库中的Presentation类,它能打开一个PPT文件并且让你读取幻灯片的内容。

ppt = Presentation('example.pptx') #example.pptx为需要提取图片的PPT文件名
#遍历幻灯片
for slide in ppt.slides:
    #在这里写代码
    pass

三、遍历每个幻灯片中的所有形状

通过遍历每个幻灯片中的所有形状,可以找到PPT中的图片。在pptx库中,每个幻灯片的形状存储在 shapes 属性中,该属性返回一个 ShapeTree 类对象,该对象包含 slides 中的所有形状。

#遍历幻灯片
for slide in ppt.slides:
    #遍历幻灯片中的所有形状
    for shape in slide.shapes:
        #在这里写代码
        pass

四、识别PPT的图片形状

有了遍历幻灯片中的所有形状的基础,接下来就需要通过一些代码来判断哪些形状是图片。在pptx中,图片形状的类型为Picture,只需要判断shape的类型是否为Picture即可。

#遍历幻灯片
for slide in ppt.slides:
    #遍历幻灯片中的所有形状
    for shape in slide.shapes:
        #找到图片形状
        if shape.shape_type == 6:
            #在这里写代码
            pass

五、将PPT中的图片保存为PNG格式

找到了PPT中的图片形状之后,就需要将其保存为PNG格式的图片。在pptxPIL库的帮助下,我们可以通过以下代码将每个图片形状保存为PNG格式的图片。

#遍历幻灯片
for slide in ppt.slides:
    #遍历幻灯片中的所有形状
    for shape in slide.shapes:
        #找到图片形状
        if shape.shape_type == 6:
            #获取图片
            image = shape.image
            #提取图片数据
            byte_stream = image.blob
            #将字节数据转换为PIL Image对象
            img_stream = io.BytesIO(byte_stream)
            img = Image.open(img_stream)
            #保存PIL Image对象为PNG格式的图片
            img.save(f"{shape.name}.png")

示例一

假设需要从example.pptx这个文件中提取所有图片。可以使用以下代码:

import os
from pptx import Presentation
from PIL import Image

ppt = Presentation('example.pptx')

#遍历幻灯片
for slide in ppt.slides:
    #遍历幻灯片中的所有形状
    for shape in slide.shapes:
        #找到图片形状
        if shape.shape_type == 6:
            #获取图片
            image = shape.image
            #提取图片数据
            byte_stream = image.blob
            #将字节数据转换为PIL Image对象
            img_stream = io.BytesIO(byte_stream)
            img = Image.open(img_stream)
            #保存PIL Image对象为PNG格式的图片
            img.save(f"{shape.name}.png")

示例二

如果需要从多个PPT文件中提取图片,可以将上述代码放入一个for循环中遍历所有文件。

例如有example1.pptxexample2.pptx两个PPT文件需要提取图片。可以使用以下代码:

import os
from pptx import Presentation
from PIL import Image

#多文件处理
files = ['example1.pptx', 'example2.pptx']

for file in files:
    ppt = Presentation(file)
    #遍历幻灯片
    for slide in ppt.slides:
        #遍历幻灯片中的所有形状
        for shape in slide.shapes:
            #找到图片形状
            if shape.shape_type == 6:
                #获取图片
                image = shape.image
                #提取图片数据
                byte_stream = image.blob
                #将字节数据转换为PIL Image对象
                img_stream = io.BytesIO(byte_stream)
                img = Image.open(img_stream)
                #保存PIL Image对象为PNG格式的图片
                img.save(f"{file}_{shape.name}.png")

这样就可以在循环结束后在每个PPT文件所在的文件夹生成提取出来的PNG图片。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:分步骤教你用python一步步提取PPT中的图片 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • ubuntu 16.04下python版本切换的方法

    下面是详细讲解“ubuntu 16.04下python版本切换的方法”的完整攻略: 1. 查看已安装的Python版本 在Ubuntu 16.04下,默认安装的Python版本是Python 2.7.x和Python 3.5.x。你可以打开终端,运行以下命令来查看已安装的Python版本: $ python –version # 查看Python 2版本 …

    python 2023年5月30日
    00
  • Python实现Linux中的du命令

    Python实现Linux中的du命令 du命令是linux系统中的一个统计命令,用于计算目录下所有文件的磁盘空间占用信息。在Python中,我们可以使用os模块来实现类似的功能。 下面是Python实现Linux中的du命令的攻略: 1. 使用os模块遍历目录下的所有文件 首先,我们需要使用os.walk()函数遍历目录下的所有文件,并计算每一个文件的大小…

    python 2023年6月2日
    00
  • 如何在Python中降低稀疏矩阵的维度

    在Python中降低稀疏矩阵的维度有多种方法,下面介绍两种常用的方法:压缩稀疏行(CSR)格式和奇异值分解(SVD)。 CSR格式 CSR格式是一种常用的存储稀疏矩阵的方法,它能够在不显式地存储零元素的情况下存储非零元素。在Python中,可以使用Scipy库提供的sparse模块来实现CSR格式的稀疏矩阵。 以下是降低稀疏矩阵的维度的示例代码: impor…

    python-answer 2023年3月25日
    00
  • python os.stat()如何获取相关文件的系统状态信息

    Python中os.stat()函数用于获取指定路径的文件或目录的系统状态相关信息,包括文件大小、创建时间、修改时间、访问时间等。要使用os.stat()函数,首先需要导入os模块: import os os.stat()函数的语法格式如下: os.stat(path) 其中path参数指定要获取的文件或目录的路径。os.stat()函数的返回值是一个元组,…

    python 2023年6月2日
    00
  • Python 如何限制输出日志的大小

    限制Python输出日志的大小,是通过设置日志记录器的处理器来实现的。可以通过Python内置的logging模块来实现这个目标。具体步骤如下: 1. 创建日志记录器 使用logging.getLogger()方法创建一个记录器对象。可以为这个记录器对象设置名称,方便后续调用和管理。 import logging logger = logging.getLo…

    python 2023年6月5日
    00
  • Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解

    Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解 介绍 在Python的GUI编程中,tkinter是一个强大而又简单易用的工具包。它提供了各式各样的GUI控件,使得我们能够快速构建出各种类型的窗口应用程序。本文将针对tkinter中两个常用的控件——messagebox和filedialog,进行详细…

    python 2023年6月13日
    00
  • python标准库turtle海龟绘图实现简单奥运五环

    Python标准库中的turtle模块是一个函数库,旨在启发孩子、青少年和成年人学习基本的图形编程概念,如活动、目标、距离和方向。海龟绘图是Python图形界面方式之一,它可以实现简单的动画功能,还可以结合海龟图形库实现各种各样的图形演示,比如奥林匹克运动会五环图案。下面我将详细讲解如何使用turtle库来实现奥林匹克运动会五环图案。 准备工作 在开始实现之…

    python 2023年5月18日
    00
  • 使用Gitee自动化部署python脚本的详细过程

    下面我将详细讲解使用Gitee自动化部署Python脚本的详细过程。 1. 首先,在Gitee上创建仓库并配置SSH key 1.1 在Gitee上创建一个仓库,将需要自动化部署的Python脚本上传至该仓库中。 1.2 在本地生成SSH key,并将公钥部分添加至Gitee的SSH key中,以便在后续操作中使用SSH协议上传代码,并且不用每次操作都输入用…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部