Prezentáció hátterek kezelése C++-ban
Bevezetés
Az egyszínű színek, a színátmenetek és a képek gyakran használtak a diák háttérképeként. Beállíthatja a háttérszínt egy normál diára (egyetlen dia) vagy egy mesterdiára (több diára egyszerre alkalmazva).

Egyszínű háttér beállítása normál diára
Az Aspose.Slides lehetővé teszi, hogy egy adott diához egyszínű hátteret állítson be – akkor is, ha a prezentáció mesterdiai sablont használ. A módosítás csak a kiválasztott diára vonatkozik.
- Hozzon létre egy példányt a Presentation osztályból.
- Állítsa be a dia BackgroundType értékét
OwnBackground‑ra. - Állítsa be a dia háttér FillType értékét
Solid‑ra. - Használja a get_SolidFillColor metódust a FillFormat osztályon a háttérszín megadásához.
- Mentse el a módosított prezentációt.
Az alábbi C++ példa bemutatja, hogyan állíthat be kék egyszínű hátteret egy normál diára:
// Hozzon létre egy példányt a Presentation osztályból.
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
// Állítsa be a dia háttérszínét kékre.
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());
// Mentse a prezentációt a lemezre.
presentation->Save(u"SolidColorBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Egyszínű háttér beállítása mesterdiára
Az Aspose.Slides lehetővé teszi, hogy egy egyszínű hátteret állítson be a prezentáció mesterdiájára. A mesterdia sablonként működik, amely a formázást a minden diára kiterjeszti, így az egyszínű háttér minden diára érvényes lesz.
- Hozzon létre egy példányt a Presentation osztályból.
- Állítsa be a mesterdia BackgroundType értékét (a
get_Masters‑on keresztül)OwnBackground‑ra. - Állítsa be a mesterdia háttér FillType értékét
Solid‑ra. - Használja a get_SolidFillColor metódust a háttér színének megadásához.
- Mentse el a módosított prezentációt.
Az alábbi C++ példa bemutatja, hogyan állíthat be erdei zöld színt a mesterdia háttérként:
// Hozzon létre egy példányt a Presentation osztályból.
auto presentation = MakeObject<Presentation>();
auto masterSlide = presentation->get_Master(0);
// Állítsa be a mesterdia háttérszínét erdei zöldre.
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());
// Mentse a prezentációt a lemezre.
presentation->Save(u"MasterSlideBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Színátmenetes háttér beállítása diára
A színátmenet egy fokozatos színváltozással létrehozott grafikai hatás. Diakép háttérként használva a színátmenetek művészibbé és professzionálisabbá tehetik a prezentációkat. Az Aspose.Slides lehetővé teszi, hogy színátmenetes színt állítson be a diák háttérként.
- Hozzon létre egy példányt a Presentation osztályból.
- Állítsa be a dia BackgroundType értékét
OwnBackground‑ra. - Állítsa be a dia háttér FillType értékét
Gradient‑ra. - Használja a get_GradientFormat metódust a FillFormat osztályon a kívánt színátmenet beállításához.
- Mentse el a módosított prezentációt.
Az alábbi C++ példa bemutatja, hogyan állíthat be színátmenetes hátteret egy diára:
// Hozzon létre egy példányt a Presentation osztályból.
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
// Alkalmazzon színátmenetes hatást a háttérre.
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);
// Mentse a prezentációt a lemezre.
presentation->Save(u"GradientBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Kép beállítása diakép háttérként
Az egyszínű és színátmenetes kitöltések mellett az Aspose.Slides lehetővé teszi képek használatát diakép háttérként.
- Hozzon létre egy példányt a Presentation osztályból.
- Állítsa be a dia BackgroundType értékét
OwnBackground‑ra. - Állítsa be a dia háttér FillType értékét
Picture‑ra. - Töltse be a kívánt képet, amelyet a dia háttérként szeretne használni.
- Adja hozzá a képet a prezentáció képkészletéhez.
- Használja a get_PictureFillFormat metódust a FillFormat osztályon a kép háttérként történő hozzárendeléséhez.
- Mentse el a módosított prezentációt.
Az alábbi C++ példa bemutatja, hogyan állíthat be képet diakép háttérként:
// Hozzon létre egy példányt a Presentation osztályból.
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
// Állítsa be a háttérkép tulajdonságait.
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);
// Töltse be a képet.
auto image = Images::FromFile(u"Tulips.jpg");
// Adja hozzá a képet a prezentáció képkészletéhez.
auto ppImage = presentation->get_Images()->AddImage(image);
image->Dispose();
slide->get_Background()->get_FillFormat()->get_PictureFillFormat()->get_Picture()->set_Image(ppImage);
// Mentse a prezentációt a lemezre.
presentation->Save(u"ImageAsBackground.pptx", SaveFormat::Pptx);
presentation->Dispose();
Az alábbi kódrészlet bemutatja, hogyan állíthatja be a háttér kitöltést csempézett képre, és módosíthatja a csempézés tulajdonságait:
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();
A háttérkép átlátszóságának módosítása
Lehet, hogy szabályozni szeretné egy diakép háttér átlátszóságát, hogy a dia tartalma jobban kiemelkedjen. Az alábbi C++ kód bemutatja, hogyan változtatható a diakép háttér átlátszósága:
auto transparencyValue = 30; // Például.
// A képtranszformációs műveletek gyűjteményének lekérése.
auto imageTransform = slide->get_Background()->get_FillFormat()->get_PictureFillFormat()->get_Picture()->get_ImageTransform();
// Keressen egy meglévő fix százalékos átlátszósági hatást.
SharedPtr<IAlphaModulateFixed> transparencyOperation;
for (auto&& operation : imageTransform)
{
if (ObjectExt::Is<IAlphaModulateFixed>(operation))
{
transparencyOperation = ExplicitCast<IAlphaModulateFixed>(operation);
break;
}
}
// Állítsa be az új átlátszósági értéket.
if (transparencyOperation == nullptr)
{
imageTransform->AddAlphaModulateFixedEffect(100.0f - transparencyValue);
}
else
{
transparencyOperation->set_Amount(100.0f - transparencyValue);
}
A dia háttér értékének lekérdezése
Az Aspose.Slides biztosítja az IBackgroundEffectiveData interfészt a dia hatékony háttérértékeinek lekéréséhez. Ez az interfész a hatékony FillFormat és EffectFormat elemeket teszi elérhetővé.
A BaseSlide osztály get_Background metódusával kaphatja meg a dia hatékony háttérjét.
Az alábbi C++ példa bemutatja, hogyan kérdezhető le egy dia hatékony háttérértéke:
// Hozzon létre egy példányt a Presentation osztályból.
auto presentation = MakeObject<Presentation>(u"Sample.pptx");
auto slide = presentation->get_Slide(0);
// Retrieve the effective background, taking into account master, layout, and theme.
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()));
}
GYIK
Vissza tudom állítani az egyedi hátteret, és visszakapni a téma/layouthátteret?
Igen. Távolítsa el a dia egyedi kitöltését, és a háttér újra az adott layout/master diához (azaz a theme background) tartozó háttérből lesz örökölt.
Mi történik a háttérrel, ha később megváltoztatom a prezentáció témáját?
Ha egy diának saját kitöltése van, az változatlan marad. Ha a háttér a layout/master diához van örökölve, akkor frissül az új theme szerint.