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

導入

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

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

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

Aspose.Slides for Java では、IImage はピクセルデータで定義された画像を扱えるインターフェイスです。このインターフェイスを使用して、画像を幅広い形式 (BMP、JPG、PNG など) で保存できます。

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

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

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

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

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

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

このサンプルコードは、これを実行する方法を示しています。

Dimension imageSize = new Dimension(1820, 1040);

Presentation presentation = new Presentation("Presentation.pptx");
try {
    // プレゼンテーションの最初のスライドを、指定したサイズのビットマップに変換します。
    IImage image = presentation.getSlides().get_Item(0).getImage(imageSize);

    try {
        // 画像を JPEG 形式で保存します。
        image.save("Slide_0.jpg", ImageFormat.Jpeg);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

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

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

Aspose.Slides は、ITiffOptionsIRenderingOptions の 2 つのインターフェイスを提供し、プレゼンテーション スライドを画像にレンダリングする制御が可能です。両方のインターフェイスには setSlidesLayoutOptions メソッドが含まれており、スライドを画像に変換する際にノートやコメントのレンダリングを設定できます。

NotesCommentsLayoutingOptions クラスを使用すると、結果画像内でノートとコメントの位置を任意に設定できます。

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

float scaleX = 2;
float scaleY = scaleX;

// プレゼンテーション ファイルを読み込みます。
Presentation presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
try {
    NotesCommentsLayoutingOptions notesCommentsOptions = new NotesCommentsLayoutingOptions();
    notesCommentsOptions.setNotesPosition(NotesPositions.BottomTruncated);  // ノートの位置を設定します。
    notesCommentsOptions.setCommentsPosition(CommentsPositions.Right);      // コメントの位置を設定します。
    notesCommentsOptions.setCommentsAreaWidth(500);                         // コメント領域の幅を設定します。
    notesCommentsOptions.setCommentsAreaColor(Color.LIGHT_GRAY);            // コメント領域の色を設定します。

    // レンダリング オプションを作成します。
    RenderingOptions options = new RenderingOptions();
    options.setSlidesLayoutOptions(notesCommentsOptions);

    // プレゼンテーションの最初のスライドを画像に変換します。
    IImage image = presentation.getSlides().get_Item(0).getImage(options, scaleX, scaleY);

    try {
        // 画像を GIF 形式で保存します。
        image.save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

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

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

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

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

    // 出力 TIFF 画像の設定を構成します。
    TiffOptions tiffOptions = new TiffOptions();
    tiffOptions.setImageSize(new Dimension(2160, 2880));             // 画像サイズを設定します。
    tiffOptions.setPixelFormat(ImagePixelFormat.Format1bppIndexed);  // ピクセル形式を設定します(白黒)。
    tiffOptions.setDpiX(300);                                        // 水平方向の解像度を設定します。
    tiffOptions.setDpiY(300);                                        // 垂直方向の解像度を設定します。

    // 指定したオプションでスライドを画像に変換します。
    IImage image = slide.getImage(tiffOptions);

    try {
        // 画像を TIFF 形式で保存します。
        image.save("output.tiff", ImageFormat.Tiff);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

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

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

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

float scaleX = 2;
float scaleY = scaleX;

Presentation presentation = new Presentation("Presentation.pptx");
try {
    // プレゼンテーションをスライドごとに画像へレンダリングします。
    for (int i = 0 ; i < presentation.getSlides().size(); i++)
    {
        // 非表示スライドを制御します(非表示スライドはレンダリングしません)。
        if (presentation.getSlides().get_Item(i).getHidden())
            continue;

        // スライドを画像に変換します。
        IImage image = presentation.getSlides().get_Item(i).getImage(scaleX, scaleY);

        try {
            // 画像を JPEG 形式で保存します。
            image.save("Slide_" + i + ".jpg", ImageFormat.Jpeg);
        } finally {
            image.dispose();
        }
    }
} finally {
    presentation.dispose();
} 

カラー絵文字のレンダリング

よくある質問

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

いいえ、getImage メソッドはアニメーションなしでスライドの静止画像のみを保存します。

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

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

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

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