PowerPointのプレゼンテーション内の要素(テキストボックス、画像、形状、グラフなど)を画像として保存することは、コンテンツを他のプラットフォームで共有したり再利用するための便利な手段です。Pythonを使えば、スライド内のテキスト、画像、図形、表などをデザインや書式を保持したまま画像として保存し、ウェブページや他のドキュメントで再利用できます。この記事では、Pythonを使用してPowerPointの要素を画像ファイルとして保存する方法を説明します。
この記事で紹介する方法には、Spire.Presentation for Pythonが必要です。PyPIからインストールできます:pip install spire.presentation
Pythonを使用してスライド内のすべての要素を画像ファイルとして保存
PowerPointプレゼンテーションを操作する際、まずPresentation.LoadFromFile()
メソッドでファイルからプレゼンテーションを読み込み、次にPresentation.Slides.get_Item()
メソッドで特定のスライドを取得、またはすべてのスライドをループ処理できます。その後、Slide.Shapes.SaveAsImage(shapeIndex: int, dpiX: int, dpiY: int)
メソッドを使って要素を画像として保存します。以下は操作手順の例です:
- 必要なモジュールをインポート
-
Presentation
インスタンスを作成 -
Presentation.LoadFromFile()
メソッドを使用してPowerPointプレゼンテーションを読み込む -
Presentation.Pages.get_Item()
メソッドを使ってスライドを取得 - スライド内の要素をループ処理:
-
Slide.Shapes.SaveAsImage()
メソッドを使用して要素を画像ストリームとして保存 -
Stream.Save()
メソッドを使用して画像ストリームをファイルに保存
-
コード例
from spire.presentation import *
# 创建一个 Presentation 实例
presentation = Presentation()
# 加载一个 PowerPoint 文件
presentation.LoadFromFile("Sample.pptx")
# 获取第四张幻灯片(索引从0开始)
slide = presentation.Slides.get_Item(4)
# 将形状保存为图片流
for i in range(slide.Shapes.Count):
# 保存当前形状为指定大小的图片流
imageStream = slide.Shapes.SaveAsImage(i, 256, 256)
# 保存图片到文件
imageStream.Save(f"output/Shapes/ShapeToImage{i}.png")
# 释放资源
presentation.Dispose()
Pythonを使用してスライド内のフォーマット付き画像を画像ファイルとして保存
要素を画像ファイルとして保存する方法を使うことで、プレゼンテーション内でフォーマットが適用された画像も、そのまま保存することが可能です。図形を画像として保存する際に、その要素がSlidePicture
インスタンスであるかを確認し、該当するインスタンスを画像として保存します。以下は操作手順の例です:
- 必要なモジュールをインポート
-
Presentation
インスタンスを作成 -
Presentation.LoadFromFile()
メソッドを使用してPowerPointプレゼンテーションを読み込む -
Presentation.Pages.get_Item()
メソッドを使ってスライドを取得 - スライド内の要素をループ処理:
- 要素が
SlidePicture
インスタンスであるかを確認し、該当する場合は画像ストリームとして保存 -
Stream.Save()
メソッドを使用して画像ストリームを画像ファイルとして保存
- 要素が
コード例
from spire.presentation import *
# Presentation インスタンスを作成
presentation = Presentation()
# PowerPoint ファイルをロード
presentation.LoadFromFile("Sample.pptx")
# 第5枚目のスライドを取得(インデックスは0から開始)
slide = presentation.Slides.get_Item(1)
# スライド内のすべての形状を反復
i = 0
for shape in slide.Shapes:
# 形状が SlidePicture 型のオブジェクトか確認
if isinstance(shape, SlidePicture):
# 形状を画像ストリームとして保存
image = slide.Shapes.SaveAsImage(slide.Shapes.IndexOf(shape), 256, 256)
# 画像をファイルに保存
image.Save(f"output/Images/ImageShape{i}.png")
i += 1
# リソースを解放
presentation.Dispose()
この記事では、Pythonを使用してPowerPointプレゼンテーション内の要素を画像ファイルとして保存する方法を紹介しました。