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

重庆做网站推广东莞玩具加工东莞网站建设

重庆做网站推广,东莞玩具加工东莞网站建设,合肥网站公司哪家好,博客系统wordpress软件介绍 这个软件的作用就是将单个PPT的每一页转换为单独的图片,然后将图片进行拼接起来。 但是我没有还没有解决一次性处理多个文件。 效果展示如下: 软件安装 软件源码 import os import re import win32com.client from PIL import Imagedef con…

软件介绍

这个软件的作用就是将单个PPT的每一页转换为单独的图片,然后将图片进行拼接起来。

但是我没有还没有解决一次性处理多个文件。

效果展示如下:

软件安装

软件源码

import os
import re
import win32com.client
from PIL import Imagedef convert_ppt_to_png(ppt: str, output_folder: str) -> None:try:pptObj = win32com.client.Dispatch("PowerPoint.Application")except Exception as e:raise RuntimeError(f"无法启动 PowerPoint 应用程序: {e}")if not os.path.exists(ppt):raise FileNotFoundError(f"PPT 文件不存在: {ppt}")presentation = pptObj.Presentations.Open(ppt, WithWindow=False)presentation.SaveAs(output_folder, 18)presentation.Close()pptObj.Quit()def create_collage(input_folder: str, output_folder: str, ppt_name: str, row_size: int, col_gap: int, row_gap: int) -> None:# 加载图片files = os.listdir(input_folder)# 匹配"幻灯片数字.png"格式的文件,不区分大小写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))# 指定拼贴画的保存路径,使用PPT文件名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))if __name__ == "__main__":ppt = r'D:\Desktop\文件存储\1\6.5世界环境日主题课件1.pptx'output_folder = r'D:\Desktop\文件存储\1'row_size = 3  # 每行图片数量col_gap = 10  # 列间距(像素)row_gap = 10  # 行间距(像素)# 从PPT路径中提取文件名(不带扩展名)ppt_filename = os.path.basename(ppt)ppt_name = os.path.splitext(ppt_filename)[0]# 确保输出文件夹存在os.makedirs(output_folder, exist_ok=True)# 首先将PPT转换为PNG图片convert_ppt_to_png(ppt, output_folder)# 然后从生成的图片创建拼贴画create_collage(output_folder, output_folder, ppt_name, row_size, col_gap, row_gap)print(f"处理完成,拼贴画已保存为: {ppt_name}.png")# 保持程序打开,等待用户输入input("按回车键退出...")

只需要把文件路径替换为自己的就行

源码下载


链接:https://pan.quark.cn/s/7aee9f6a4d62

http://www.dtcms.com/a/566440.html

相关文章:

  • Javascript运算符之算术运算符、赋值运算符
  • 给网站做导流计算机最值得考的十大证书
  • 电子书网站 自己做网站建设用什么开源程序好
  • 阿里云龙蜥8系统安装Docker详细教程
  • 高端网站建设与管理义乌网站建设公司哪家好
  • erp开发和网站开发江苏省工程建设信息官方网
  • 一个人怎么做网站wordpress自定义文章类型置顶
  • uos1070 (amd)安装matlab
  • STM32 重定向 printf 到串口的 GCC 方法与 Keil 方法对比
  • 网站建设主题怎么定深圳营销外深圳网络营销公司
  • 网页制作与网站设计论文阳江房产网春天尚院
  • 广州seo网站推广优化四川省建设招标网站
  • 内核的“瘦身”艺术:从臃肿BSP到精悍映像的雕刻之路
  • 网站建设公司-跨界鱼科技网站返回503的含义是
  • 泉州找工作哪个网站好手机版网站建设价格
  • 网站制作费用遵义网上房地产
  • pc门户网站是什么意思建设银行济宁分行网站
  • 免费网站建设策划宿迁东岸网络技术有限公司
  • 南昌有哪些做网站的公司58同城网站建设推广
  • 啥时候用抽象类,啥时候用接口【示例】
  • GB/T 4857.3:运输包装静载堆码试验要点
  • 【Windows】Windows 11 添加IE浏览器 解决浏览器兼容问题
  • 高职大数据技术专业需要的基础
  • 织梦网站建设asp.net 微信网站
  • 时尚网站电子商城网站开发
  • Spark专有名词
  • wordpress 创建子主题外链seo招聘
  • 广告公司网站设计策划设计ui是什么意思
  • 怎么在Adobe Photoshop中调用banana与flux、即梦4.0等AI图像模型?AI+工作流已成为平面设计师必备技术手段!不用等着被淘汰吧!
  • 免费的网站域名查询565wccwordpress交互式地图