Фон презентации

Сплошные цвета, градиентные цвета и изображения часто используются в качестве фоновых изображений для слайдов. Вы можете установить фон как для нормального слайда (один слайд), так и для мастер-слайда (несколько слайдов сразу).

powerpoint-background

Установить сплошной цвет в качестве фона для нормального слайда

Aspose.Slides позволяет устанавливать сплошной цвет в качестве фона для конкретного слайда в презентации (даже если эта презентация содержит мастер-слайд). Изменение фона затрагивает только выбранный слайд.

  1. Создайте экземпляр класса Presentation.
  2. Установите перечисление BackgroundType для слайда в OwnBackground.
  3. Установите перечисление FillType для фона слайда в Solid.
  4. Используйте свойство SolidFillColor, предоставляемое FillFormat, чтобы указать сплошной цвет для фона.
  5. Сохраните изменённую презентацию.

Этот код на 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 позволяет установить сплошной цвет в качестве фона для мастер-слайда в презентации. Мастер-слайд действует как шаблон, который содержит и контролирует параметры форматирования для всех слайдов. Поэтому, когда вы выбираете сплошной цвет в качестве фона для мастер-слайда, этот новый фон будет использоваться для всех слайдов.

  1. Создайте экземпляр класса Presentation.
  2. Установите перечисление BackgroundType для мастер-слайда (Masters) в OwnBackground.
  3. Установите перечисление FillType для фона мастер-слайда в Solid.
  4. Используйте свойство SolidFillColor, предоставляемое FillFormat, чтобы указать сплошной цвет для фона.
  5. Сохраните изменённую презентацию.

Этот код на 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 позволяет установить градиентный цвет в качестве фона для слайдов в презентациях.

  1. Создайте экземпляр класса Presentation.
  2. Установите перечисление BackgroundType для слайда в OwnBackground.
  3. Установите.enumeration FillType для фона мастер-слайда в Gradient.
  4. Используйте свойство GradientFormat, предоставляемое FillFormat, чтобы указать ваши предпочтительные настройки градиента.
  5. Сохраните изменённую презентацию.

Этот код на 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 также позволяет устанавливать изображения в качестве фона для слайдов в презентациях.

  1. Создайте экземпляр класса Presentation.
  2. Установите перечисление BackgroundType для слайда в OwnBackground.
  3. Установите перечисление FillType для фона мастер-слайда в Picture.
  4. Загрузите изображение, которое вы хотите использовать в качестве фона слайда.
  5. Добавьте изображение в коллекцию изображений презентации.
  6. Используйте свойство PictureFillFormat, предоставляемое FillFormat, чтобы установить изображение в качестве фона.
  7. Сохраните изменённую презентацию.

Этот код на 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()));
	}