可以使用 `python-pptx` 库读取PPT,配合 `Pillow` 库将幻灯片转换为图片。以下是完整代码: ```python from pptx import Presentation from PIL import Image import io import os def ppt_to_images(pptx_path, output_folder): """ 将PPTX文件每页转换为图片 参数: pptx_path: PPTX文件路径 output_folder: 图片输出文件夹 """ # 创建输出文件夹 os.makedirs(output_folder, exist_ok=True) # 加载PPT文件 prs = Presentation(pptx_path) # 遍历每页幻灯片 for i, slide in enumerate(prs.slides): # 生成图片文件名 img_path = os.path.join(output_folder, f"slide_{i+1}.png") # 获取幻灯片图像数据 image = slide.shapes[0].image image_bytes = image.blob # 转换为Pillow图像并保存 img = Image.open(io.BytesIO(image_bytes)) img.save(img_path) print(f"已保存: {img_path}") # 使用示例 ppt_to_images("input.pptx", "output_images") ``` 注意事项: 1. 此代码假设PPT每页都是纯图片格式,如果包含其他元素需要额外处理 2. 输出图片分辨率取决于原始PPT的分辨率设置 3. 对于复杂PPT建议先转换为PDF再处理,可以保持更好的格式一致性 如果需要处理包含文字、图表等复杂元素的PPT,可以考虑使用 `comtypes` 调用PowerPoint应用程序接口实现更精确的转换: ```python import comtypes.client import os def ppt_to_images_using_ppt(pptx_path, output_folder): # 初始化PowerPoint应用 powerpoint = comtypes.client.CreateObject("PowerPoint.Application") powerpoint.Visible = 1 # 打开演示文稿 deck = powerpoint.Presentations.Open(pptx_path) # 创建输出文件夹 os.makedirs(output_folder, exist_ok=True) # 导出每页为PNG for i in range(1, deck.Slides.Count + 1): output_path = os.path.join(output_folder, f"slide_{i}.png") deck.Slides[i].Export(output_path, "PNG") # 关闭演示文稿 deck.Close() powerpoint.Quit() # 使用示例 ppt_to_images_using_ppt("input.pptx", "output_images_ppt") ``` 注意事项: 1. 此方法需要安装Microsoft PowerPoint 2. 图片质量可以通过调整Export参数控制 3. 处理完成后会自动关闭PowerPoint应用 [2025-07-24 16:34:04 | AI写代码神器 | 590点数解答]