Создание миниатюр фигур презентации в C++

Создание миниатюры фигуры

Aspose.Slides for C++ используется для создания файлов презентаций, где каждая страница представляет собой слайд. Эти слайды можно просматривать, открывая файлы презентаций в Microsoft PowerPoint. Но иногда разработчикам требуется просмотреть изображения фигур отдельно в просмотрщике изображений. В таком случае Aspose.Slides for C++ помогает создать миниатюры фигур слайдов. Как использовать эту функцию, описано в этой статье. В статье объясняется, как генерировать миниатюры слайдов различными способами:

  • Генерация миниатюры фигуры внутри слайда.
  • Генерация миниатюры фигуры с пользовательскими размерами.
  • Генерация миниатюры в границах внешнего вида фигуры.
  • Генерация миниатюры дочернего узла SmartArt.

Генерация миниатюры фигуры со слайда

Чтобы сгенерировать миниатюру фигуры с любого слайда с помощью Aspose.Slides for C++:

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на любой слайд по его идентификатору или индексу.
  3. Получите изображение миниатюры фигуры указанного слайда в масштабе по умолчанию.
  4. Сохраните изображение миниатюры в нужном формате.

Пример ниже генерирует миниатюру фигуры.

auto presentation = MakeObject<Presentation>(u"HelloWorld.pptx");
auto shape = presentation->get_Slide(0)->get_Shape(0);

auto image = shape->GetImage();
image->Save(u"Shape_thumbnail_out.png", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

Генерация миниатюры с пользовательским коэффициентом масштабирования

Чтобы сгенерировать миниатюру фигуры любого слайда с помощью Aspose.Slides for C++:

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на любой слайд по его идентификатору или индексу.
  3. Получите изображение миниатюры указанного слайда с границами фигуры.
  4. Сохраните изображение миниатюры в нужном формате.

Пример ниже генерирует миниатюру с пользовательским коэффициентом масштабирования.

auto bounds = ShapeThumbnailBounds::Shape;
auto scale = 1; // Масштабирование вдоль осей X и Y.

auto presentation = MakeObject<Presentation>(u"HelloWorld.pptx");
auto shape = presentation->get_Slide(0)->get_Shape(0);

auto image = shape->GetImage(bounds, scale, scale);
image->Save(u"Scaling Factor Thumbnail_out.png", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

Создание миниатюры фигуры на основе границ внешнего вида

Этот метод создания миниатюр фигур позволяет разработчикам генерировать миниатюру в границах внешнего вида фигуры. Он учитывает все эффекты фигуры. Сгенерированная миниатюра фигуры ограничена границами слайда. Чтобы сгенерировать миниатюру любой фигуры слайда в границах её внешнего вида, используйте следующий пример кода:

  1. Создайте экземпляр класса Presentation .
  2. Получите ссылку на любой слайд по его идентификатору или индексу.
  3. Получите изображение миниатюры указанного слайда с границами фигуры как внешнего вида.
  4. Сохраните изображение миниатюры в нужном формате.

Пример ниже создаёт миниатюру с пользовательским коэффициентом масштабирования.

auto bounds = ShapeThumbnailBounds::Appearance;
auto scale = 1; // Масштабирование вдоль осей X и Y.

auto presentation = MakeObject<Presentation>(u"HelloWorld.pptx");
auto shape = presentation->get_Slide(0)->get_Shape(0);

auto image = shape->GetImage(bounds, scale, scale);
image->Save(u"Shape_thumbnail_Bound_Shape_out.png", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

FAQ

Какие форматы изображений можно использовать при сохранении миниатюр фигур?

PNG, JPEG, BMP, GIF, TIFF, и другие. Фигуры также можно экспортировать как векторный SVG сохраняя содержание фигуры в SVG.

В чём разница между границами Shape и Appearance при рендеринге миниатюры?

Shape использует геометрию фигуры; Appearance учитывает визуальные эффекты (тени, свечения и т.д.).

Что происходит, если фигура помечена как скрытая? Будет ли она всё равно отображена в виде миниатюры?

Скрытая фигура остаётся частью модели и может быть отрисована; флаг скрытия влияет только на отображение в показе, но не препятствует генерации изображения фигуры.

Поддерживаются ли групповые фигуры, диаграммы, SmartArt и другие сложные объекты?

Да. Любой объект, представленный как Shape (включая GroupShape, Chart, и SmartArt), можно сохранить как миниатюру или как SVG.

Влияют ли системно установленные шрифты на качество миниатюр текстовых фигур?

Да. Необходимо предоставить требуемые шрифты (или настроить подстановку шрифтов), чтобы избежать нежелательных замен и переподгонки текста.