.NET でプレゼンテーションスライドを画像に変換

概要

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

スライドを画像に変換する手順は以下のとおりです。

  1. 変換設定を定義し、エクスポートするスライドを選択します。使用できるインターフェイスは次のとおりです。
  2. GetImage メソッドを呼び出してスライド画像を生成します。

.NET では、Bitmap はピクセル データで定義された画像を扱えるオブジェクトです。このクラスのインスタンスを使って、BMP、JPG、PNG などの多数の形式で画像を保存できます。

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

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

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

using (Presentation presentation = new Presentation("Presentation.pptx"))
{
    // プレゼンテーションの最初のスライドをビットマップに変換します。
    using (IImage image = presentation.Slides[0].GetImage())
    {
        // 画像を PNG 形式で保存します。
        image.Save("Slide_0.png", ImageFormat.Png);
    }
}

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

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

このサンプルコードはその手順を示しています。

Size imageSize = new Size(1820, 1040);

using (Presentation presentation = new Presentation("Presentation.pptx"))
{
    // 指定されたサイズでプレゼンテーションの最初のスライドをビットマップに変換します。
    using (IImage image = presentation.Slides[0].GetImage(imageSize))
    {
        // 画像を JPEG 形式で保存します。
        image.Save("Slide_0.jpg", ImageFormat.Jpeg);
    }
}

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

スライドにノートやコメントが含まれていることがあります。

Aspose.Slides は、ITiffOptionsIRenderingOptions の 2 つのインターフェイスを提供し、プレゼンテーション スライドを画像にレンダリングする際の設定を制御できます。両インターフェイスには SlidesLayoutOptions プロパティがあり、画像変換時にノートやコメントのレンダリング方法を構成できます。

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

次の C# コードは、ノートとコメント付きスライドを画像に変換する例です。

float scaleX = 2;
float scaleY = scaleX;

// プレゼンテーションファイルを読み込む。
using (Presentation presentation = new Presentation("Presentation_with_notes_and_comments.pptx"))
{
    // レンダリングオプションを作成する。
    RenderingOptions options = new RenderingOptions
    {
        SlidesLayoutOptions = new NotesCommentsLayoutingOptions
        {
            NotesPosition = NotesPositions.BottomTruncated,  // ノートの位置を設定する。
            CommentsPosition = CommentsPositions.Right,      // コメントの位置を設定する。
            CommentsAreaWidth = 500,                         // コメント領域の幅を設定する。
            CommentsAreaColor = Color.AntiqueWhite           // コメント領域の色を設定する。
        }
    };

    // プレゼンテーションの最初のスライドを画像に変換する。
    using (IImage image = presentation.Slides[0].GetImage(options, scaleX, scaleY))
    {
        // 画像を GIF 形式で保存する。
        image.Save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);
    }
}

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

ITiffOptions インターフェイスを使用すると、サイズ、解像度、カラーパレットなどのパラメータを指定して、生成される TIFF 画像を細かく制御できます。

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

// プレゼンテーションファイルを読み込む。
using (Presentation presentation = new Presentation("sample.pptx"))
{
    // プレゼンテーションから最初のスライドを取得する。
    ISlide slide = presentation.Slides[0];

    // 出力 TIFF 画像の設定を構成する。
    TiffOptions tiffOptions = new TiffOptions
    {
        ImageSize = new Size(2160, 2880),                  // 画像サイズを設定する。
        PixelFormat = ImagePixelFormat.Format1bppIndexed,  // ピクセル形式を設定する(黒と白)。
        DpiX = 300,                                        // 水平解像度を設定する。
        DpiY = 300                                         // 垂直解像度を設定する。
    };

    // 指定したオプションでスライドを画像に変換する。
    using (IImage image = slide.GetImage(tiffOptions))
    {
        // 画像を TIFF 形式で保存する。
        image.Save("output.tiff", ImageFormat.Tiff);
    }
}

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

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

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

float scaleX = 2;
float scaleY = scaleX;

using (Presentation presentation = new Presentation("Presentation.pptx"))
{
    // プレゼンテーションをスライド単位で画像にレンダリングします。
    for (int i = 0; i < presentation.Slides.Count; i++)
    {
        // 非表示スライドを制御します(非表示スライドはレンダリングしません)。
        if (presentation.Slides[i].Hidden)
            continue;

        // スライドを画像に変換します。
        using (IImage image = presentation.Slides[i].GetImage(scaleX, scaleY))
        {
            // 画像を JPEG 形式で保存します。
            image.Save($"Slide_{i}.jpg", ImageFormat.Jpeg);
        }
    }
}

FAQ

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

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

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

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

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

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