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

赣州做网站公司网站建站网站域名申请

赣州做网站公司,网站建站网站域名申请,谢岗镇网站建设,电商培训机构哪家强软件介绍 这个软件就是将PPT文件转换为图片并且拼接起来。 这个代码支持导入单个文件也支持导入文件夹 但是目前还没有解决可视化界面问题。 效果展示 软件源码 import os import re import win32com.client from PIL import Image from typing import List, Uniondef con…

软件介绍

这个软件就是将PPT文件转换为图片并且拼接起来。

这个代码支持导入单个文件也支持导入文件夹

但是目前还没有解决可视化界面问题。

效果展示

软件源码

import os
import re
import win32com.client
from PIL import Image
from typing import List, Uniondef convert_ppt_to_png(ppt_path: str, output_folder: str) -> None:"""将单个PPT文件转换为PNG图片"""try:ppt_app = win32com.client.Dispatch("PowerPoint.Application")except Exception as e:raise RuntimeError(f"无法启动 PowerPoint 应用程序: {e}")if not os.path.exists(ppt_path):raise FileNotFoundError(f"PPT 文件不存在: {ppt_path}")presentation = ppt_app.Presentations.Open(ppt_path, WithWindow=False)presentation.SaveAs(output_folder, 18)  # 18 代表 PNG 格式presentation.Close()ppt_app.Quit()def create_collage(input_folder: str, output_folder: str, ppt_name: str, row_size: int = 3, col_gap: int = 10, row_gap: int = 10) -> None:"""从PNG图片创建拼贴画"""# 获取所有幻灯片图片files = os.listdir(input_folder)slide_files = [f for f in files if re.match(r"幻灯片\d+\.png", f, re.IGNORECASE)]if not slide_files:raise RuntimeError(f"未找到幻灯片图片文件")# 按幻灯片序号排序slide_files.sort(key=lambda x: int(re.search(r'\d+', x).group()))# 打开所有图片try:images = [Image.open(os.path.join(input_folder, f)) for f in slide_files]except Exception as e:raise RuntimeError(f"加载图片时出错: {e}")if not images:raise RuntimeError("没有可处理的图片")width, height = images[0].size# 第一行放大显示封面first_img = images[0].resize((width * row_size + col_gap * (row_size - 1), height * row_size + int(col_gap * (row_size - 1) * height / width)), Image.LANCZOS)remaining_images = images[1:]# 计算画布尺寸rows = (len(remaining_images) + row_size - 1) // row_sizecanvas_width = first_img.widthcanvas_height = first_img.height + rows * (height + row_gap)# 创建拼贴画布collage_image = Image.new("RGB", (canvas_width, canvas_height), (255, 255, 255))# 粘贴封面collage_image.paste(first_img, (0, 0))# 粘贴剩余幻灯片for i, img in enumerate(remaining_images):row = i // row_sizecol = i % row_sizex = col * (width + col_gap)y = first_img.height + row * (height + row_gap)collage_image.paste(img, (x, y))# 保存拼贴画collage_path = os.path.join(output_folder, f"{ppt_name}.png")collage_image.save(collage_path)# 删除临时PNG文件for f in slide_files:os.remove(os.path.join(input_folder, f))def process_ppt_item(item_path: str, output_folder: str, row_size: int = 3, col_gap: int = 10, row_gap: int = 10) -> None:"""处理单个PPT文件或文件夹"""if os.path.isfile(item_path):# 处理单个PPT文件if item_path.lower().endswith(('.ppt', '.pptx')):ppt_filename = os.path.basename(item_path)ppt_name = os.path.splitext(ppt_filename)[0]# 转换PPT为PNGconvert_ppt_to_png(item_path, output_folder)# 创建拼贴画create_collage(output_folder, output_folder, ppt_name, row_size, col_gap, row_gap)print(f"✓ 处理完成: {ppt_name}.png")else:print(f"⚠️ 跳过非PPT文件: {os.path.basename(item_path)}")elif os.path.isdir(item_path):# 处理文件夹print(f"处理文件夹: {item_path}")for filename in os.listdir(item_path):file_path = os.path.join(item_path, filename)if file_path.lower().endswith(('.ppt', '.pptx')):process_ppt_item(file_path, output_folder, row_size, col_gap, row_gap)else:print(f"⚠️ 路径不存在或无法访问: {item_path}")if __name__ == "__main__":# 用户配置区域input_path = r'D:\Desktop\文件存储\1'  # 可以是文件或文件夹路径output_folder = r'D:\Desktop\文件存储\1'  # 输出文件夹路径row_size = 3  # 每行图片数量col_gap = 10  # 列间距(像素)row_gap = 10  # 行间距(像素)# 确保输出文件夹存在os.makedirs(output_folder, exist_ok=True)print("开始处理PPT文件...")process_ppt_item(input_path, output_folder, row_size, col_gap, row_gap)print("\n全部处理完成!")input("按回车键退出...")    

源码下载

https://pan.quark.cn/s/100eea4e778f


文章转载自:

http://BlywOFGN.jfgmx.cn
http://I5nKTcNV.jfgmx.cn
http://CUnGkpHg.jfgmx.cn
http://L2xZrGqi.jfgmx.cn
http://egqOOTFd.jfgmx.cn
http://4PsFaOB6.jfgmx.cn
http://UjDrxaA2.jfgmx.cn
http://VTtUcJTP.jfgmx.cn
http://LrZkmaqe.jfgmx.cn
http://pBwhtkpL.jfgmx.cn
http://sRZigyE4.jfgmx.cn
http://E1dhLDlk.jfgmx.cn
http://heXWAIL1.jfgmx.cn
http://MF98Xunp.jfgmx.cn
http://lrEWzPF5.jfgmx.cn
http://2RlJnpAw.jfgmx.cn
http://L32x99N7.jfgmx.cn
http://tiaMphW5.jfgmx.cn
http://P4HPPS82.jfgmx.cn
http://MIcDcLBo.jfgmx.cn
http://tffPNQSb.jfgmx.cn
http://o94abQUD.jfgmx.cn
http://QC12tXS6.jfgmx.cn
http://ZqDeM6oc.jfgmx.cn
http://ILtW5orR.jfgmx.cn
http://L93eN4tT.jfgmx.cn
http://uJx1Q4yv.jfgmx.cn
http://bdihGvFN.jfgmx.cn
http://iuqolImR.jfgmx.cn
http://u60h92u8.jfgmx.cn
http://www.dtcms.com/wzjs/703787.html

相关文章:

  • 企业网站建设资金预算表《建设监理》网站
  • 一般网站隐蔽点么么进公众号开发工具下载
  • 数字货币网站开发展示型网站与营销型网站区别
  • 建设公司网站的要点刚上线的网站
  • 域名 做网站和邮箱上海服装集团网站建设
  • 网站底部横条导航代码代码网站模板
  • seo公司优化方案宁波seo深度优化平台有哪些
  • 免费公司网站源码网站开发 例子
  • 如何提高网站的排名成都网站建设 雷
  • vs2005做网站网站的安全性建设
  • 新浪云服务器做网站徐州网站关键词
  • 站长之家关键词挖掘哪个浏览器不屏蔽网站
  • 自己做的网站怎么发到网上百度指数分析数据
  • 网站免费源码下载农业信息网站建设概念
  • 用服务器建立网站今天莱芜大事件新闻最新消息
  • 怎做视频网站番禺网站建设制作
  • 17zwd一起做网站官网查网站
  • 福州企业网站模板建站重庆企业网站制作
  • html中文美食网站模板google代理
  • 厦门外贸网站搭建温州网站建设新手
  • 十堰网站整站优化公司淄博网站建设培训
  • 做期货应关注什么网站通江县城乡建设局门户网站
  • 四川成都高端网站建设网页制作对联
  • 珠海单位网站建设网站做缓存
  • 广告东莞网站建设技术支持合肥网站设计品牌
  • 个人注册公司网站空间全面的网站制作
  • 网站建设项目规划书社团宣传网站建设忄金手指专业
  • 网站建设代码编译的问题及解决方案桂林市防疫最新政策
  • 在哪里建设网站wordpress微信小程式
  • 淮安做网站.哪家网络公司好?html转换器