python ppt 图片_利用Python将PPT转换为图片并合成长图
最近因为某些需求需要将PPT转换为图片并合并成预览图,于是第一时间就想到了用python解决问题,过程中参考了一位老哥写的文章,链接如下。Python行家:用Python实现ppt转化图片(附带长图合并功能)zhuanlan.zhihu.com
功能的实现很简单 ,分两步,第一步:将PPT转换为图片格式;第二步:将图片合并生成预览图。
PPT转换为图片:
老哥使用了win32com库来操作com组件,笔者使用comtypes库以实现同样功能。
主要代码如下:
def ppt2png(filePath,picture_path):
fileNames = glob.glob(picture_path + r'\*')
for fileName in fileNames:
os.remove(fileName)
powerpoint = comtypes.client.CreateObject("kwpp.Application") #使用wps的接口
ppt = powerpoint.Presentations.Open(filePath)
# 另存为
ppt.SaveAs(picture_path + '.jpg', 17)
# 退出
ppt.Close()
powerpoint.Quit()
图片合并生成预览图:
使用PIL库,由于PIL仅支持至2.7版本,3.X以上版本需使用pillow。
上面老哥的代码是把所有图片合并成一列,这样会显得图很长,我要的是按3列进行合并,实现起来也很简单,一个取模运算和一个向下取整运算解决问题,于是在他的代码上进行了一下修改:
def generate_long_image(picture_path,preview_name):
last_dir = os.path.dirname(picture_path) # 上一级文件目录
ppl = os.listdir(picture_path)
ppl.sort(key=lambda x: int(x.replace("幻灯片","").split('.')[0]))
print(ppl)
ims = [Image.open(os.path.join(picture_path, fn)) for fn in ppl if fn.endswith('.jpg')]
width, height = ims[0].size # 取第一个图片尺寸
long_canvas = Image.new(ims[0].mode, (width*3, height * math.ceil(len(ims)/3))) # 创建3倍宽,n/3高的白图片
for i, image in enumerate(ims):
j = i%3
k = math.floor(i/3)
long_canvas.paste(image, (j * width, k * height))
long_canvas.save(os.path.join(last_dir, preview_name+'.png')) # 保存长图
最终的效果:
python ppt 图片_利用Python将PPT转换为图片并合成长图相关推荐
- python批量生成图片_利用Python批量生成任意尺寸的图片
实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...
- python 钉钉机器人发送图片_利用Python自动发送钉钉数据消息
现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上都能快速有效的被阅读,打开率会比邮件高上不少.所以准备使用钉钉来播报平台每日的成交额,并附上一些鼓励的话和图片.起到一个激励团队的作用 ...
- python爬虫好友图片_利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- 如何使用python批量压缩图片_利用Python 批量压缩图片
方法一 直接调整宽高 先放参考资料:如何用Python智能批量压缩图片? import math from glob import glob from PIL import Image import ...
- python是动态语言图片_利用python图片生成,需10几行代码,生成的动态表情包(小黄鸭)...
小编找到了10几行的,好玩的动态表情包生成的代码.分享分享! 这个程序怎么做呢?不要急,来听我给大家分析分析. 工具:程序环境 语言:Python 3.6 编辑器:Pycharm 程序步骤 实现字符动 ...
- python数据预测_利用Python编写一个数据预测工具
利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...
- python照片墙地图_利用python生成照片墙的示例代码
PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...
- python图色检测_利用python打开摄像头及颜色检测方法
最近两周由于忙于个人项目,一直未发言了,实在是太荒凉了....,上周由于项目,见到Python的应用极为广泛,用起来也特别顺手,于是小编也开始着手学习Python,-下面我就汇报下今天的学习成果吧 小 ...
- python 词云_利用Python生成词云
利用Python生成词云 一.第三方库的安装与介绍 1.1 Python第三方库jieba(中文分词) 1.介绍 "结巴"中文分词:做最好的 Python 中文分词组件. 2.特 ...
最新文章
- Oracle Flashback Database and Restore Points 说明
- LiveVideoStack线上分享第三季(十三):腾讯云LiteAVSDK演进之路
- Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated) D. Kuroni and the Celebration 交互 + 思维
- bootstrap学习笔记(一)网络系统
- UmiJS 是一个 react 开发框架
- Dockerfile 学习:Docker Alpine PHP 安装扩展
- 糯米美团再获融资,团购硝烟再起
- 大数据将走向何方?未来大数据的十大趋势评析
- C语言字符串分割 trimmed simplified split
- 谷歌:民主国家搜索引擎的消费监控
- 地牢大师--(BFS+三维数组)
- 1.(group by)如何让group by分组后,每组中的所有数据都显示出来
- 数据可视化工具之--百度图说
- 元宇宙大热,是风口还是虎口
- matlab 稳定系统,MATLAB分析在系统稳定性的应用
- 二、基于根轨迹法的PID控制器分析与设计
- macOS如何快速将视频转化为音频mp3(软件全免费)
- 一个JAVA程序员经常访问的网站
- RK3588 rtc-hym8563设备开发
- 树莓派35/100 - 用graphviz画逻辑电路图