摘要:从 PowerPoint 幻灯片创建图像可以为以更通用的方式共享和展示您的内容开辟了许多可能性。无论您是希望生成用于快速预览的缩略图、在不接受 PowerPoint 文件的平台上共享幻灯片,还是在报表、网站或其他文档中嵌入演示文稿,将幻灯片转换为图像格式都是一
从 PowerPoint 幻灯片创建图像可以为以更通用的方式共享和展示您的内容开辟了许多可能性。无论您是希望生成用于快速预览的缩略图、在不接受 PowerPoint 文件的平台上共享幻灯片,还是在报表、网站或其他文档中嵌入演示文稿,将幻灯片转换为图像格式都是一个实用的解决方案。
要按照本文中的示例进行操作,您需要安装 Spire.Presentation for Python 库,该库允许在 Python 应用程序中创建、读取、编辑和转换 PowerPoint 演示文稿。
您可以使用以下命令安装库:
pip install spire.presentation现在,让我们深入了解转换过程。
有两种方法可以将 PowerPoint 幻灯片转换为 JPG、PNG 或 BMP 等格式的图像:
ISlide.SaveAsImage:将幻灯片转换为具有实际尺寸的图像。ISlide.SaveAsImageByWH:将幻灯片转换为具有自定义尺寸的图像。将幻灯片转换为具有实际尺寸的图像
以下是使用 ISlide.SaveAsImage 方法将 PowerPoint 幻灯片转换为具有实际尺寸的 PNG 图像的代码片段。您可以根据需要通过将图像扩展名更改为 .jpg 或 .bmp 来切换格式。
import osfrom spire.presentation import *def ppt_to_images(ppt_File, output_dir): # Create the output directory if it doesn't exist os.makedirs(output_dir, exist_ok=True) # Open the PowerPoint file presentation = Presentation presentation.LoadFromFile(ppt_file) # Export each slide as a PNG image for i, slide in enumerate(presentation.Slides): # You can change the image extension to JPG or BMP according to your needs image_path = os.path.join(output_dir, f"slide_{i + 1}.png") image_stream = slide.SaveAsImage image_stream.Save(image_path)# Convert the slides in a PowerPoint file to PNG imagesppt_to_images("presentation.pptx", "output/images")以下是从演示文稿中的第一张幻灯片转换而来的结果图像:
在 Python 中将 PowerPoint 幻灯片转换为图像
将幻灯片转换为具有自定义尺寸的图像
以下代码段显示了如何使用 ISlide.SaveAsImageByWH 方法将 PowerPoint 幻灯片转换为具有自定义尺寸的图像:
import osfrom spire.presentation import *def ppt_to_images_with_custom_dimension(ppt_file, output_dir, width, height): # Create the output directory if it doesn't exist os.makedirs(output_dir, exist_ok=True) # Open the PowerPoint file presentation = Presentation presentation.LoadFromFile(ppt_file) # Export each slide as a PNG image with custom dimension for i, slide in enumerate(presentation.Slides): # You can change the image extension JPG or BMP according to your needs image_path = os.path.join(output_dir, f"slide_{i + 1}.png") image_stream = slide.SaveAsImageByWH(width, height) image_stream.Save(image_path)# Convert the slides in a PowerPoint file to PNG images with custom dimensionppt_to_images_with_custom_dimension("presentation.pptx", "output/images", width=800, height=600)SVG(可缩放矢量图形)是一种出色的格式,可确保高质量缩放而不会损失任何分辨率。对于包含需要在不同大小下保持清晰度的图形或文本的幻灯片,它特别有用。
要将幻灯片转换为 SVG,请使用 ISlide.SaveToSVG 方法。以下是实现此目的的代码片段:
import osfrom spire.presentation import *def ppt_to_svg(ppt_file, output_dir): # Create the output directory if it doesn't exist os.makedirs(output_dir, exist_ok=True) # Open the PowerPoint file presentation = Presentation presentation.LoadFromFile(ppt_file) # Export each slide as an SVG image for i, slide in enumerate(presentation.Slides): image_path = os.path.join(output_dir, f"slide_{i + 1}.svg") image_stream = slide.SaveToSVG image_stream.Save(image_path)# Convert the slides in a PowerPoint file to SVG imagesppt_to_svg("presentation.pptx", "output/svg")TIFF 广泛用于高质量图像的专业设置,尤其是在处理需要高分辨率的详细图形或文档时。虽然 Spire.Presentation 不直接支持多页 TIFF,但您可以使用 Pillow 库将多张幻灯片的输出合并为多页 TIFF。
在编码之前,请确保你已经安装了 Pillow:
pip install Pillow以下是将 PowerPoint 幻灯片转换为多页 TIFF 图像的代码片段:
from spire.presentation import *from PIL import Imagefrom io import BytesIOdef ppt_to_single_tiff(ppt_file, output_path): # Open the PowerPoint file presentation = Presentation presentation.LoadFromFile(ppt_file) # Create an empty list to store images images = # Iterate through each slide in the file for slide in presentation.Slides: # Export the slide as an image stream image_stream = slide.SaveAsImage # Convert the image stream to a PIL image pil_img = Image.open(BytesIO(image_stream.ToArray)) # Append the PIL image to the list images.append(pil_img) if images: # Save the images as a multi-page TIFF file images[0].save(output_path, save_all=True, append_images=images[1:], format="TIFF")# Convert the slides in a PowerPoint file to a multi-page TIFF imageppt_to_single_tiff("presentation.pptx", "output/ppt.tiff")PowerPoint 幻灯片通常包含有价值的形状。通过将这些形状转换为单独的图像,您可以轻松地在其他应用程序中重复使用它们。
下面的代码片段演示了如何使用 IAutoShape.SaveAsImage 方法将 PowerPoint 形状转换为图像:
import osfrom spire.presentation import *def shape_to_images(ppt_file, output_dir): # Create the output directory if it doesn't exist os.makedirs(output_dir, exist_ok=True) # Open the PowerPoint file presentation = Presentation presentation.LoadFromFile(ppt_file) # # Iterate through each slide in the presentation for i, slide in enumerate(presentation.Slides): # Iterate through each shape on the slide for j, shape in enumerate(slide.Shapes): # Define the output image file path for each shape image_path = os.path.join(output_dir, f"slide_{i + 1}_shape_{j + 1}.png") # Save the shape as an image stream image_stream = shape.SaveAsImage # Save the image stream to an image file image_stream.Save(image_path)# Convert the shapes in a PowerPoint file to PNG imagesshape_to_images("presentation.pptx", "output/shape images")来源:自由坦荡的湖泊AI