Фон презентации
Сплошные цвета, градиентные цвета и изображения часто используются в качестве фоновых изображений для слайдов. Вы можете установить фон как для нормального слайда (один слайд), так и для мастер-слайда (несколько слайдов сразу).
Установить сплошной цвет в качестве фона для нормального слайда
Aspose.Slides позволяет устанавливать сплошной цвет в качестве фона для конкретного слайда в презентации (даже если эта презентация содержит мастер-слайд). Изменение фона затрагивает только выбранный слайд.
- Создайте экземпляр класса Presentation.
- Установите перечисление BackgroundType для слайда в
OwnBackground
. - Установите перечисление FillType для фона слайда в
Solid
. - Используйте свойство SolidFillColor, предоставляемое FillFormat, чтобы указать сплошной цвет для фона.
- Сохраните изменённую презентацию.
Этот код на C++ показывает, как установить сплошной цвет (синий) в качестве фона для нормального слайда:
// Путь к директории документов.
const String OutPath = L"../out/SetSlideBackgroundNormal_out.pptx";
// Создает экземпляр класса Presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Устанавливает цвет фона для первого ISlide в синий
pres->get_Slides()->idx_get(0)->get_Background()->set_Type(BackgroundType::OwnBackground);
pres->get_Slides()->idx_get(0)->get_Background()->get_FillFormat()->set_FillType(FillType::Solid);
pres->get_Slides()->idx_get(0)->get_Background()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Blue());
// Записывает презентацию на диск
pres->Save(OutPath, Aspose::Slides::Export::SaveFormat::Pptx);
Установить сплошной цвет в качестве фона для мастер-слайда
Aspose.Slides позволяет установить сплошной цвет в качестве фона для мастер-слайда в презентации. Мастер-слайд действует как шаблон, который содержит и контролирует параметры форматирования для всех слайдов. Поэтому, когда вы выбираете сплошной цвет в качестве фона для мастер-слайда, этот новый фон будет использоваться для всех слайдов.
- Создайте экземпляр класса Presentation.
- Установите перечисление BackgroundType для мастер-слайда (
Masters
) вOwnBackground
. - Установите перечисление FillType для фона мастер-слайда в
Solid
. - Используйте свойство SolidFillColor, предоставляемое FillFormat, чтобы указать сплошной цвет для фона.
- Сохраните изменённую презентацию.
Этот код на C++ показывает, как установить сплошной цвет (лесной зелёный) в качестве фона для мастер-слайда в презентации:
// Путь к директории документов.
const String OutPath = L"../out/SetSlideBackgroundMaster_out.pptx";
// Создает экземпляр класса Presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Устанавливает цвет фона для мастер ISlide в лесной зелёный
pres->get_Masters()->idx_get(0)->get_Background()->set_Type(BackgroundType::OwnBackground);
pres->get_Masters()->idx_get(0)->get_Background()->get_FillFormat()->set_FillType(FillType::Solid);
pres->get_Masters()->idx_get(0)->get_Background()->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_ForestGreen());
// Записывает презентацию на диск
pres->Save(OutPath, Aspose::Slides::Export::SaveFormat::Pptx);
Установить градиентный цвет в качестве фона для слайда
Градиент — это графический эффект, основанный на постепенном изменении цвета. Градиентные цвета, используемые в качестве фонов для слайдов, придают презентациям художественный и профессиональный вид. Aspose.Slides позволяет установить градиентный цвет в качестве фона для слайдов в презентациях.
- Создайте экземпляр класса Presentation.
- Установите перечисление BackgroundType для слайда в
OwnBackground
. - Установите.enumeration FillType для фона мастер-слайда в
Gradient
. - Используйте свойство GradientFormat, предоставляемое FillFormat, чтобы указать ваши предпочтительные настройки градиента.
- Сохраните изменённую презентацию.
Этот код на C++ показывает, как установить градиентный цвет в качестве фона для слайда:
// Создает экземпляр класса Presentation
auto pres = System::MakeObject<Presentation>(u"SetBackgroundToGradient.pptx");
// Применить эффект градиента к фону
pres->get_Slides()->idx_get(0)->get_Background()->set_Type(BackgroundType::OwnBackground);
pres->get_Slides()->idx_get(0)->get_Background()->get_FillFormat()->set_FillType(FillType::Gradient);
pres->get_Slides()->idx_get(0)->get_Background()->get_FillFormat()->get_GradientFormat()->set_TileFlip(TileFlip::FlipBoth);
// Записывает презентацию на диск
pres->Save(u"ContentBG_Grad_out.pptx", SaveFormat::Pptx);
Установить изображение в качестве фона для слайда
Помимо сплошных и градиентных цветов, Aspose.Slides также позволяет устанавливать изображения в качестве фона для слайдов в презентациях.
- Создайте экземпляр класса Presentation.
- Установите перечисление BackgroundType для слайда в
OwnBackground
. - Установите перечисление FillType для фона мастер-слайда в
Picture
. - Загрузите изображение, которое вы хотите использовать в качестве фона слайда.
- Добавьте изображение в коллекцию изображений презентации.
- Используйте свойство PictureFillFormat, предоставляемое FillFormat, чтобы установить изображение в качестве фона.
- Сохраните изменённую презентацию.
Этот код на C++ показывает, как установить изображение в качестве фона для слайда:
// Путь к директории документов.
const String templatePath = L"../templates/SetImageAsBackground.pptx";
const String imagePath = L"../templates/Tulips.jpg";
const String outPath = L"../out/ContentBG_Img_out.pptx";
// Создает экземпляр класса Presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>();
// Устанавливает условия для фонового изображения
pres->get_Slides()->idx_get(0)->get_Background()->set_Type(BackgroundType::OwnBackground);
pres->get_Slides()->idx_get(0)->get_Background()->get_FillFormat()->set_FillType(FillType::Picture);
pres->get_Slides()->idx_get(0)->get_Background()->get_FillFormat()->get_PictureFillFormat()->set_PictureFillMode(PictureFillMode::Stretch);
// Загружает изображение
auto image = Images::FromFile(imagePath);
// Добавляет изображение в коллекцию изображений презентации
SharedPtr<IPPImage> imgx = pres->get_Images()->AddImage(image);
pres->get_Slides()->idx_get(0)->get_Background()->get_FillFormat()->get_PictureFillFormat()->get_Picture()->set_Image(imgx);
// Записывает презентацию на диск
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Изменение прозрачности фонового изображения
Вы можете захотеть изменить прозрачность фонового изображения слайда, чтобы содержимое слайда выделялось. Этот код на C++ показывает, как изменить прозрачность фонового изображения слайда:
int32_t transparencyValue = 30;
// например
// Получает коллекцию операций преобразования изображения
auto imageTransform = slide->get_Background()->get_FillFormat()->get_PictureFillFormat()->get_Picture()->get_ImageTransform();
// Находит эффект прозрачности с фиксированным процентом.
System::SharedPtr<AlphaModulateFixed> transparencyOperation;
for (auto&& operation : imageTransform)
{
if (System::ObjectExt::Is<AlphaModulateFixed>(operation))
{
transparencyOperation = System::ExplicitCast<AlphaModulateFixed>(operation);
break;
}
}
// Устанавливает новое значение прозрачности.
if (transparencyOperation == nullptr)
{
imageTransform->AddAlphaModulateFixedEffect(100.0f - transparencyValue);
}
else
{
transparencyOperation->set_Amount(100.0f - transparencyValue);
}
Получить значение фона слайда
Aspose.Slides предоставляет интерфейс IBackgroundEffectiveData, который позволяет получить эффективные значения фонов слайдов. Этот интерфейс содержит информацию об эффективном FillFormat и эффективном EffectFormat.
Используя свойство Background из класса BaseSlide, вы можете получить эффективное значение фона слайда.
Этот код на C++ показывает, как получить эффективное значение фона слайда:
// Создает экземпляр класса Presentation
const String templatePath = u"../templates/SamplePresentation.pptx";
auto pres = System::MakeObject<Presentation>(templatePath);
System::SharedPtr<IBackgroundEffectiveData> effBackground = pres->get_Slides()->idx_get(0)->CreateBackgroundEffective();
if (effBackground->get_FillFormat()->get_FillType() == Aspose::Slides::FillType::Solid)
{
System::Console::WriteLine(System::String(u"Цвет заливки: ") + effBackground->get_FillFormat()->get_SolidFillColor());
}
else
{
System::Console::WriteLine(System::String(u"Тип заливки: ") + System::ObjectExt::ToString(effBackground->get_FillFormat()->get_FillType()));
}