Verwalten von Präsentationshintergründen in C++
Übersicht
Einfarbige Farben, Verläufe und Bilder werden häufig für Folienhintergründe verwendet. Sie können den Hintergrund für eine normale Folie (einzelne Folie) oder eine Masterfolie (gilt für mehrere Folien gleichzeitig) festlegen.

Einfarbigen Hintergrund für eine normale Folie festlegen
Aspose.Slides ermöglicht das Festlegen einer einfarbigen Hintergrundfarbe für eine bestimmte Folie in einer Präsentation – selbst wenn die Präsentation eine Masterfolie verwendet. Die Änderung gilt nur für die ausgewählte Folie.
- Erstellen Sie eine Instanz der Presentation Klasse.
- Setzen Sie den BackgroundType der Folie auf
OwnBackground. - Setzen Sie den Folienhintergrund FillType auf
Solid. - Verwenden Sie die Methode get_SolidFillColor auf FillFormat, um die einfarbige Hintergrundfarbe festzulegen.
- Speichern Sie die geänderte Präsentation.
Das folgende C++-Beispiel zeigt, wie man eine blaue einfarbige Hintergrundfarbe für eine normale Folie festlegt:
// Erstelle eine Instanz der Presentation-Klasse.
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
// Setze die Hintergrundfarbe der Folie auf Blau.
slide->get_Background()->set_Type(BackgroundType::OwnBackground);
slide->get_Background()->get_FillFormat()->set_FillType(FillType::Solid);
slide->get_Background()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Blue());
// Speichere die Präsentation auf die Festplatte.
presentation->Save(u"SolidColorBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Einfarbigen Hintergrund für eine Masterfolie festlegen
Aspose.Slides ermöglicht das Festlegen einer einfarbigen Hintergrundfarbe für die Masterfolie in einer Präsentation. Die Masterfolie dient als Vorlage, die die Formatierung aller Folien steuert, sodass, wenn Sie eine einfarbige Hintergrundfarbe für die Masterfolie auswählen, diese für jede Folie gilt.
- Erstellen Sie eine Instanz der Presentation Klasse.
- Setzen Sie den BackgroundType der Masterfolie (über
get_Masters) aufOwnBackground. - Setzen Sie den Hintergrund der Masterfolie FillType auf
Solid. - Verwenden Sie die Methode get_SolidFillColor, um die einfarbige Hintergrundfarbe festzulegen.
- Speichern Sie die geänderte Präsentation.
Das folgende C++-Beispiel zeigt, wie man eine einfarbige Hintergrundfarbe (Waldgrün) für eine Masterfolie festlegt:
// Erstelle eine Instanz der Presentation-Klasse.
auto presentation = MakeObject<Presentation>();
auto masterSlide = presentation->get_Master(0);
// Setze die Hintergrundfarbe für die Masterfolie auf Waldgrün.
masterSlide->get_Background()->set_Type(BackgroundType::OwnBackground);
masterSlide->get_Background()->get_FillFormat()->set_FillType(FillType::Solid);
masterSlide->get_Background()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_ForestGreen());
// Speichere die Präsentation auf die Festplatte.
presentation->Save(u"MasterSlideBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Verlaufshintergrund für eine Folie festlegen
Ein Verlauf ist ein grafischer Effekt, der durch eine allmähliche Farbänderung entsteht. Als Folienhintergrund kann ein Verlauf Präsentationen künstlerischer und professioneller erscheinen lassen. Aspose.Slides ermöglicht das Festlegen einer Verlauffarbe als Hintergrund für Folien.
- Erstellen Sie eine Instanz der Presentation Klasse.
- Setzen Sie den BackgroundType der Folie auf
OwnBackground. - Setzen Sie den Folienhintergrund FillType auf
Gradient. - Verwenden Sie die Methode get_GradientFormat auf FillFormat, um Ihre gewünschten Verlaufseinstellungen zu konfigurieren.
- Speichern Sie die geänderte Präsentation.
Das folgende C++-Beispiel zeigt, wie man eine Verlauffarbe als Hintergrund für eine Folie festlegt:
// Erstelle eine Instanz der Presentation-Klasse.
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
// Wende einen Verlaufseffekt auf den Hintergrund an.
slide->get_Background()->set_Type(BackgroundType::OwnBackground);
slide->get_Background()->get_FillFormat()->set_FillType(FillType::Gradient);
slide->get_Background()->get_FillFormat()->get_GradientFormat()->set_TileFlip(TileFlip::FlipBoth);
// Speichere die Präsentation auf die Festplatte.
presentation->Save(u"GradientBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Ein Bild als Folienhintergrund festlegen
Zusätzlich zu einfarbigen und Verlauffüllungen ermöglicht Aspose.Slides die Verwendung von Bildern als Folienhintergrund.
- Erstellen Sie eine Instanz der Presentation Klasse.
- Setzen Sie den BackgroundType der Folie auf
OwnBackground. - Setzen Sie den Folienhintergrund FillType auf
Picture. - Laden Sie das Bild, das Sie als Folienhintergrund verwenden möchten.
- Fügen Sie das Bild der Bildsammlung der Präsentation hinzu.
- Verwenden Sie die Methode get_PictureFillFormat auf FillFormat, um das Bild als Hintergrund zuzuweisen.
- Speichern Sie die geänderte Präsentation.
Das folgende C++-Beispiel zeigt, wie man ein Bild als Hintergrund für eine Folie festlegt:
// Erstelle eine Instanz der Presentation-Klasse.
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
// Lege die Eigenschaften des Hintergrundbildes fest.
slide->get_Background()->set_Type(BackgroundType::OwnBackground);
slide->get_Background()->get_FillFormat()->set_FillType(FillType::Picture);
slide->get_Background()->get_FillFormat()->get_PictureFillFormat()->set_PictureFillMode(PictureFillMode::Stretch);
// Lade das Bild.
auto image = Images::FromFile(u"Tulips.jpg");
// Füge das Bild zur Bildsammlung der Präsentation hinzu.
auto ppImage = presentation->get_Images()->AddImage(image);
image->Dispose();
slide->get_Background()->get_FillFormat()->get_PictureFillFormat()->get_Picture()->set_Image(ppImage);
// Speichere die Präsentation auf die Festplatte.
presentation->Save(u"ImageAsBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Das folgende Codebeispiel zeigt, wie man den Hintergrundfülltyp auf ein gekacheltes Bild festlegt und die Kacheligkeitseigenschaften ändert:
auto presentation = MakeObject<Presentation>();
auto firstSlide = presentation->get_Slide(0);
auto background = firstSlide->get_Background();
background->set_Type(BackgroundType::OwnBackground);
background->get_FillFormat()->set_FillType(FillType::Picture);
auto newImage = Images::FromFile(u"image.png");
auto ppImage = presentation->get_Images()->AddImage(newImage);
newImage->Dispose();
// Set the image used for the background fill.
auto backPictureFillFormat = background->get_FillFormat()->get_PictureFillFormat();
backPictureFillFormat->get_Picture()->set_Image(ppImage);
// Set the picture fill mode to Tile and adjust the tile properties.
backPictureFillFormat->set_PictureFillMode(PictureFillMode::Tile);
backPictureFillFormat->set_TileOffsetX(15.0);
backPictureFillFormat->set_TileOffsetY(15.0);
backPictureFillFormat->set_TileScaleX(46.0);
backPictureFillFormat->set_TileScaleY(87.0);
backPictureFillFormat->set_TileAlignment(RectangleAlignment::Center);
backPictureFillFormat->set_TileFlip(TileFlip::FlipY);
presentation->Save(u"TileBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Transparenz des Hintergrundbildes ändern
Möglicherweise möchten Sie die Transparenz des Hintergrundbildes einer Folie anpassen, damit der Inhalt der Folie besser hervorsticht. Der folgende C++-Code zeigt, wie Sie die Transparenz für ein Folienhintergrundbild ändern:
auto transparencyValue = 30; // Zum Beispiel.
// Rufe die Sammlung von Bildtransformationsoperationen ab.
auto imageTransform = slide->get_Background()->get_FillFormat()->get_PictureFillFormat()->get_Picture()->get_ImageTransform();
// Finde einen vorhandenen Transparenzeffekt mit festem Prozentsatz.
SharedPtr<IAlphaModulateFixed> transparencyOperation;
for (auto&& operation : imageTransform)
{
if (ObjectExt::Is<IAlphaModulateFixed>(operation))
{
transparencyOperation = ExplicitCast<IAlphaModulateFixed>(operation);
break;
}
}
// Setze den neuen Transparenzwert.
if (transparencyOperation == nullptr)
{
imageTransform->AddAlphaModulateFixedEffect(100.0f - transparencyValue);
}
else
{
transparencyOperation->set_Amount(100.0f - transparencyValue);
}
Wert des Folienhintergrunds abrufen
Aspose.Slides stellt das Interface IBackgroundEffectiveData zum Abrufen der effektiven Hintergrundwerte einer Folie bereit. Dieses Interface gibt das effektive FillFormat und EffectFormat zurück.
Durch die Verwendung der Methode get_Background der Klasse BaseSlide können Sie den effektiven Hintergrund für eine Folie erhalten.
Das folgende C++-Beispiel zeigt, wie man den effektiven Hintergrundwert einer Folie abruft:
// Erstelle eine Instanz der Presentation-Klasse.
auto presentation = MakeObject<Presentation>(u"Sample.pptx");
auto slide = presentation->get_Slide(0);
// Rufe den effektiven Hintergrund ab, wobei Master, Layout und Theme berücksichtigt werden.
auto effBackground = slide->get_Background()->GetEffective();
if (effBackground->get_FillFormat()->get_FillType() == FillType::Solid)
{
Console::WriteLine(u"Fill color: {0}", effBackground->get_FillFormat()->get_SolidFillColor());
}
else
{
Console::WriteLine(u"Fill type: {0}", ObjectExt::ToString(effBackground->get_FillFormat()->get_FillType()));
}
FAQ
Kann ich einen benutzerdefinierten Hintergrund zurücksetzen und den Theme-/Layout-Hintergrund wiederherstellen?
Ja. Entfernen Sie die benutzerdefinierte Füllung der Folie, und der Hintergrund wird wieder vom entsprechenden layout/master Folie (d. h. vom theme background) geerbt.
Was passiert mit dem Hintergrund, wenn ich später das Theme der Präsentation ändere?
Wenn eine Folie ihre eigene Füllung hat, bleibt sie unverändert. Wenn der Hintergrund vom layout/master geerbt wird, wird er aktualisiert, um dem new theme zu entsprechen.