我是靠谱客的博主 精明酸奶,最近开发中收集的这篇文章主要介绍用python成批从ppt中截取指定大小图片,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        因为工作需要,要经常从大量ppt演示文稿中截取图片,并压缩为成指定大小的缩略图。以前都是把ppt一个一个打开,然后另存为图片,再用图片处理工具把图片大小调整为指定尺寸。这种做法费时费力,还经常把文件名搞错。

        学习了python以后,利用python打开win32应用,就可以自动打开ppt,并按我们的要求,自动生成指定数量、指定格式的图片,并把图片保存到我们指定的目录中。

一、要求:

1、必须安装ms powerpoint ,我安装的是powerpoint 2010。

2、导入pypiwin32包。(命令行方式下输入:python -m pip install pypiwin32)

二、代码:代码如下,注释已经非常清楚如,不再另行说明

#本程序用于python成批截取PPT的图片
import os
import win32com.client
#指定PPT所在文件夹和jpg文件存放位置
ppt_dir="E:/new/ppt/"
pic_dir="E:/new/pic/"
#指定每个PPT截取图片数量及图片格式
pic_count=5#每个ppt取图片数,如为0则全部取
pic_fmt="jpg"
#指定图片的宽高
pic_width=427
pic_height=240

# 定义遍历指定的文件夹的函数
def walkFile(file):
    for root,dirs,files in os.walk(file):
    #for root, dirs, files in os.walk(file):
        # root 表示当前访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list
        # 遍历文件
        for f in files:
            #print(os.path.join(root, f))
            Presentation = Application.Presentations.Open(os.path.join(root,f))
            page_Count=Presentation.Slides.count#得到当前PPT文件的页数
            if pic_count==0:#如为0,则处理PPT中的所有图片
                for i in range(page_Count):
                    #生成图片文件名为ppt文件名+1……n的格式,如ppt文件为aaa.pptx,,则生成图片为aaa.pptx_1.jpg,aaa.pptx_2.jpg,aaa.pptx_3.jpg
                    pic_fname=f"{pic_dir}{f}_{i+1}.{pic_fmt}"
                    Presentation.Slides[i].Export(pic_fname, pic_fmt, pic_width, pic_height)
                    print("正在生成"+pic_fname+"n")
                    
            else:#处理ppt中指定数量的图片
                #如果ppt的总张数大于等于指定的数量,处理指定数量,否则只处理总张数
                for i in range( pic_count if page_Count >= pic_count else page_Count):
                    #生成图片文件名为ppt文件名+1……n的格式,如ppt文件为aaa.pptx,,则生成图片为aaa.pptx_1.jpg,aaa.pptx_2.jpg,aaa.pptx_3.jpg
                    pic_fname=f"{pic_dir}{f}_{i+1}.{pic_fmt}"
                    Presentation.Slides[i].Export(pic_fname, pic_fmt, pic_width, pic_height)
                    print("正在生成"+pic_fname+"n")


            Presentation.Close()

        # 遍历所有的文件夹
        for d in dirs:
            print(os.path.join(root, d))




#设置应用为PowerPoint
Application = win32com.client.Dispatch("PowerPoint.Application")
#设置powerpoint应用显示窗口,但不显示警告信息
Application.Visible =1
Application.DisplayAlerts = 0
walkFile(ppt_dir)
Application.Quit()

三、运行效果

Ppt文件放入指定文件夹(我指定的是e:/new/ppt)。

 

运行上面的代码。

 

完成后,图片自动保存到指定文件夹(我指定的是e:/new/pic)

 

说明:测试环境:

  1. Win11 22h2
  2. python3.11.1
  3. Office 2010

最后

以上就是精明酸奶为你收集整理的用python成批从ppt中截取指定大小图片的全部内容,希望文章能够帮你解决用python成批从ppt中截取指定大小图片所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部