PowerPoint-Folien nach PNG konvertieren in C++

Übersicht

Dieser Artikel erklärt, wie Sie Präsentationsfolien mithilfe von Aspose.Slides für C++ in PNG‑Bilder konvertieren. Sie können Präsentationen in Formaten wie PPT, PPTX und ODP laden, jede Folie rendern und sie als separates PNG‑Bild speichern.

Die nachfolgenden Beispiele zeigen das Rendern mit dem Standardskala, das Erhöhen der Skalierung, das Festlegen der Ausgabedimensionen in Pixeln und das Auswählen eines Gradienten‑Render‑Stils.

PowerPoint in PNG konvertieren

Laden Sie eine Präsentation mit der Klasse Presentation und greifen Sie über den Zugriff Presentation::get_Slide auf deren Folien zu. Das Beispiel rendert jede Folie mit ISlide::GetImage ohne Parameter, um ein Vorschaubild zu erzeugen. Anschließend wird IImage::Save mit ImageFormat::Png aufgerufen, um jede gerenderte Folie als PNG‑Bild zu speichern.

#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/string.h>

using namespace Aspose::Slides;
using namespace System;

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

auto slideCount = presentation->get_Slides()->get_Count();
for (auto index = 0; index < slideCount; index++)
{
    auto slide = presentation->get_Slide(index);
    auto image = slide->GetImage();
    image->Save(String::Format(u"slide_{0}.png", index), ImageFormat::Png);
    image->Dispose();
}

presentation->Dispose();

PowerPoint in PNG mit benutzerdefinierten Abmessungen konvertieren

Übergeben Sie horizontale und vertikale Skalierungsfaktoren an ISlide::GetImage, um die gerenderten Abmessungen zu steuern. In diesem Beispiel sind beide Faktoren 2, sodass eine Folie mit 720 × 540 Punkten ein Bild von 1440 × 1080 Pixeln erzeugt. Gleiche Skalierungsfaktoren erhalten das Seitenverhältnis der Folie bei. Jede Bild wird im PNG‑Format mit IImage::Save gespeichert.

#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/string.h>

using namespace Aspose::Slides;
using namespace System;

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

auto scaleX = 2.f;
auto scaleY = scaleX;

auto slideCount = presentation->get_Slides()->get_Count();
for (auto index = 0; index < slideCount; index++)
{
    auto slide = presentation->get_Slide(index);
    auto image = slide->GetImage(scaleX, scaleY);
    image->Save(String::Format(u"slide_{0}.png", index), ImageFormat::Png);
    image->Dispose();
}

presentation->Dispose();

PowerPoint in PNG mit benutzerdefinierter Größe konvertieren

Um die Ausgabedimensionen in Pixeln anzugeben, übergeben Sie statt Skalierungsfaktoren eine Größe an ISlide::GetImage. Dieses Beispiel rendert jede Folie mit 960 × 720 Pixeln und speichert das Ergebnis mit IImage::Save. Wählen Sie Abmessungen, die dem Seitenverhältnis der Folie entsprechen, um ein Verziehen des Bildes zu vermeiden.

#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/string.h>
#include <drawing/size.h>

using namespace Aspose::Slides;
using namespace System;

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

auto imageSize = System::Drawing::Size(960, 720);

auto slideCount = presentation->get_Slides()->get_Count();
for (auto index = 0; index < slideCount; index++)
{
    auto slide = presentation->get_Slide(index);
    auto image = slide->GetImage(imageSize);
    image->Save(String::Format(u"slide_{0}.png", index), ImageFormat::Png);
    image->Dispose();
}

presentation->Dispose();

Gradient‑Render‑Stil auswählen

Angenommen, eine Folie enthält Farbverläufe, aber die Übergänge im exportierten PNG sehen heller oder anderweitig anders aus als in PowerPoint. Sie können die Methode SaveOptions::set_GradientStyle von RenderingOptions verwenden, um zu bestimmen, wie die Verläufe gerendert werden.

Laden Sie gradient-styles.pptx herunter und legen Sie sie im Arbeitsverzeichnis der Anwendung ab. Die erste Folie enthält zwei lineare Verläufe: Cyan zu Orange oben und Blau zu Gelb unten. Jeder Verlauf hat zwei Stopps bei 0 % und 100 %.

Das folgende Beispiel lädt diese Präsentation und rendert dieselbe erste Folie in beiden Modi mit ISlide::GetImage.

#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/string.h>
#include <DOM/GradientStyle.h>
#include <Export/RenderingOptions.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;

auto presentation = MakeObject<Presentation>(u"gradient-styles.pptx");
auto slide = presentation->get_Slide(0);

auto gradientStyles = { GradientStyle::Default, GradientStyle::PowerPointUI };
for (auto style : gradientStyles)
{
    auto options = MakeObject<RenderingOptions>();
    options->set_GradientStyle(style);

    auto image = slide->GetImage(options, 1.f, 1.f);
    auto styleName = style == GradientStyle::Default ? u"Default" : u"PowerPointUI";
    image->Save(String::Format(u"gradient-{0}.png", styleName), ImageFormat::Png);
    image->Dispose();
}

presentation->Dispose();
Default PowerPointUI
Cyan-zu-Orange- und Blau-zu-Gelb-Verläufe, gerendert mit Default Dieselbe Verläufe, gerendert mit PowerPointUI

In diesem Beispiel erzeugt Default hellere Zwischenfarben, während PowerPointUI dunklere Zwischenfarben erzeugt. Der Unterschied hängt von den Farben und Stopps im Verlauf ab.

Wählen Sie Default, wenn die Standardausgabe von Aspose.Slides Ihren Anforderungen entspricht. Verwenden Sie PowerPointUI, wenn Ihre Priorität darin besteht, das Aussehen in PowerPoint nachzubilden. Vergleichen Sie beide Ausgaben mit dem gewünschten Ergebnis; keiner der Modi ist allgemein vorzuziehen.

FAQ

Wie kann ich ein bestimmtes Shape, z. B. ein Diagramm oder Bild, statt der gesamten Folie exportieren?
Aspose.Slides unterstützt das Erzeugen von Miniaturansichten für einzelne Shapes, sodass Sie ein Shape als PNG‑Bild rendern können.

Wird eine parallele Konvertierung auf einem Server unterstützt?
Ja. Verwenden Sie für jeden Thread oder Prozess eine separate Präsentationsinstanz; teilen Sie keine einzelne Instanz über Threads hinweg.

Welche Einschränkungen gelten im Evaluierungsmodus beim Exportieren nach PNG?
Im Evaluierungsmodus wird den Ausgabebildern ein Wasserzeichen hinzugefügt und es gelten weitere Einschränkungen, bis eine Lizenz angewendet wird.