Python で PowerPoint スライドを画像に変換

概要

Aspose.Slides for Python via .NET を使用すると、PowerPoint および OpenDocument のプレゼンテーションスライドを BMP、PNG、JPG(JPEG)、GIF などのさまざまな画像形式に簡単に変換できます。

スライドを画像に変換するには、次の手順に従います:

  1. 目的の変換設定を定義し、エクスポートするスライドを次のいずれかで選択します:
  2. Slide クラスの get_image メソッドを呼び出してスライド画像を生成します。

Aspose.Slides for Python via .NET の IImage は、ピクセルデータで定義された画像を操作できるクラスです。このクラスのインスタンスを使用すると、BMP、JPG、PNG など、幅広い形式で画像を保存できます。

スライドをビットマップに変換し、PNG で画像を保存

スライドをビットマップオブジェクトに変換してアプリケーションで直接使用できます。または、スライドをビットマップに変換し、JPEG やその他の好きな形式で画像を保存することも可能です。

以下の Python コードは、プレゼンテーションの最初のスライドをビットマップオブジェクトに変換し、PNG 形式で画像を保存する方法を示しています。

import aspose.slides as slides

with slides.Presentation("Presentation.pptx") as presentation:
    # プレゼンテーションの最初のスライドをビットマップに変換します。
    with presentation.slides[0].get_image() as image:
        # 画像を PNG 形式で保存します。
        image.save("Slide_0.png", slides.ImageFormat.PNG)

カスタムサイズでスライドを画像に変換

特定のサイズの画像が必要な場合があります。get_image のオーバーロードを使用すると、幅と高さを指定してスライドを画像に変換できます。

以下のサンプルコードは、その方法を示しています。

import aspose.pydrawing as draw
import aspose.slides as slides

image_size = draw.Size(1820, 1040)

with slides.Presentation("Presentation.pptx") as presentation:
    # プレゼンテーションの最初のスライドを指定サイズのビットマップに変換します。
    with presentation.slides[0].get_image(image_size) as image:
        # 画像を JPEG 形式で保存します。
        image.save("Slide_0.jpg", slides.ImageFormat.JPEG)

ノートとコメント付きスライドを画像に変換

一部のスライドにはノートやコメントが含まれている場合があります。

Aspose.Slides は、TiffOptionsRenderingOptions の 2 つのクラスを提供し、プレゼンテーションスライドを画像にレンダリングする際の制御が可能です。両クラスには slides_layout_options プロパティがあり、スライドを画像に変換する際にノートやコメントのレンダリングを設定できます。

NotesCommentsLayoutingOptions クラスを使用すると、生成された画像内でノートとコメントの位置を好きなように指定できます。

以下の Python コードは、ノートとコメント付きのスライドを変換する方法を示しています。

import aspose.pydrawing as draw
import aspose.slides as slides

scale_x = 2
scale_y = scale_x

with slides.Presentation("Presentation_with_notes_and_comments.pptx") as presentation:
    notes_comments_options = slides.export.NotesCommentsLayoutingOptions()
    notes_comments_options.notes_position = slides.export.NotesPositions.BOTTOM_TRUNCATED  # ノートの位置を設定します。
    notes_comments_options.comments_position = slides.export.CommentsPositions.RIGHT       # コメントの位置を設定します。
    notes_comments_options.comments_area_width = 500                                       # コメント領域の幅を設定します。
    notes_comments_options.comments_area_color = draw.Color.antique_white                  # コメント領域の色を設定します。

    # レンダリングオプションを作成します。
    options = slides.export.RenderingOptions()
    options.slides_layout_options = notes_comments_options

    # プレゼンテーションの最初のスライドを画像に変換します。
    with presentation.slides[0].get_image(options, scale_x, scale_y) as image:
        # 画像を GIF 形式で保存します。
        image.save("Image_with_notes_and_comments_0.gif", slides.ImageFormat.GIF)

TIFF オプションを使用してスライドを画像に変換

TiffOptions クラスは、サイズ、解像度、カラーパレットなどのパラメーターを指定でき、生成される TIFF 画像をより細かく制御できます。

以下の Python コードは、TIFF オプションを使用して 300 DPI の解像度と 2160×2800 のサイズで白黒画像を出力する変換プロセスを示しています。

import aspose.pydrawing as draw
import aspose.slides as slides

# プレゼンテーション ファイルを読み込みます。
with slides.Presentation("sample.pptx") as presentation:
    # プレゼンテーションから最初のスライドを取得します。
    slide = presentation.slides[0]

    # 出力 TIFF 画像の設定を構成します。
    options = slides.export.TiffOptions()
    options.image_size = draw.Size(2160, 2880)                                 # 画像サイズを設定します。
    options.pixel_format = slides.export.ImagePixelFormat.FORMAT_1BPP_INDEXED  # ピクセル形式(白黒)を設定します。
    options.dpi_x = 300                                                        # 水平解像度を設定します。
    options.dpi_y = 300                                                        # 垂直解像度を設定します。

    # 指定されたオプションでスライドを画像に変換します。
    with slide.get_image(options) as image:
        # 画像を TIFF 形式で保存します。
        image.save("output.tiff", slides.ImageFormat.TIFF)

すべてのスライドを画像に変換

Aspose.Slides を使用すると、プレゼンテーション内のすべてのスライドを画像に変換でき、プレゼンテーション全体を画像の連続に変換できます。

以下のサンプルコードは、Python でプレゼンテーション内のすべてのスライドを画像に変換する方法を示しています。

import aspose.slides as slides

scale_x = 2
scale_y = scale_x

with slides.Presentation("Presentation.pptx") as presentation:
    # プレゼンテーションをスライドごとに画像へレンダリングします。
    for i, slide in enumerate(presentation.slides):
        # 非表示スライドを制御します(非表示スライドはレンダリングしません)。
        if slide.hidden:
            continue

        # スライドを画像に変換します。
        with slide.get_image(scale_x, scale_y) as image:
            # 画像を JPEG 形式で保存します。
            image.save("Slide_{0}.jpg".format(i), slides.ImageFormat.JPEG)

よくある質問

Aspose.Slides はアニメーション付きスライドのレンダリングをサポートしていますか?

いいえ、get_image メソッドはスライドの静止画像のみを保存し、アニメーションは含まれません。

非表示スライドを画像としてエクスポートできますか?

はい、非表示スライドも通常のスライドと同様に処理できます。処理ループに含めることを忘れないでください。

画像を影やエフェクト付きで保存できますか?

はい、Aspose.Slides はスライドを画像として保存する際に、影、透明度、その他のグラフィック効果のレンダリングをサポートしています。