概述
因为工作需要,要经常从大量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)
说明:测试环境:
- Win11 22h2
- python3.11.1
- Office 2010
最后
以上就是精明酸奶为你收集整理的用python成批从ppt中截取指定大小图片的全部内容,希望文章能够帮你解决用python成批从ppt中截取指定大小图片所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复