プレゼンテーションスライドの背景を画像として取得する

Contents
[ ]

PowerPointプレゼンテーションでは、スライドの背景は多くの要素から構成されることがあります。スライド背景として設定された画像に加え、最終的な背景はプレゼンテーションのテーマ、カラースキーム、マスタースライドやレイアウトスライドに配置された図形によって影響を受けることがあります。

Aspose.Slides for C++には、プレゼンテーションスライドの背景全体を画像として抽出する簡単な方法は提供されていませんが、以下の手順に従ってこれを行うことができます:

  1. Presentationクラスを使用してプレゼンテーションをロードします。
  2. プレゼンテーションからスライドサイズを取得します。
  3. スライドを選択します。
  4. 一時的なプレゼンテーションを作成します。
  5. 一時的なプレゼンテーションに同じスライドサイズを設定します。
  6. 選択したスライドを一時的なプレゼンテーションにクローンします。
  7. クローンしたスライドから図形を削除します。
  8. クローンしたスライドを画像に変換します。

以下のコード例は、プレゼンテーションスライドの背景全体を画像として抽出します。

auto slideIndex = 0;
auto imageScale = 1;

auto presentation = System::MakeObject<Presentation>(u"sample.pptx");

auto slideSize = presentation->get_SlideSize()->get_Size();
auto slide = presentation->get_Slides()->idx_get(slideIndex);

auto tempPresentation = System::MakeObject<Presentation>();

auto slideWidth = slideSize.get_Width();
auto slideHeight = slideSize.get_Height();
tempPresentation->get_SlideSize()->SetSize(slideWidth, slideHeight, SlideSizeScaleType::DoNotScale);

auto clonedSlide = tempPresentation->get_Slides()->AddClone(slide);
clonedSlide->get_Shapes()->Clear();

auto background = clonedSlide->GetImage(imageScale, imageScale);
background->Save(u"output.png", ImageFormat::Png);

tempPresentation->Dispose();
presentation->Dispose();