Gerenciar Fundos de Apresentação em .NET
Introdução
Cores sólidas, gradientes e imagens são comumente usadas como fundos de slides. Você pode definir o fundo para um slide normal (um slide único) ou um slide mestre (aplica-se a vários slides de uma vez).

Definir um Fundo de Cor Sólida para um Slide Normal
Aspose.Slides permite definir uma cor sólida como fundo para um slide específico em uma apresentação — mesmo que a apresentação use um slide mestre. A alteração se aplica apenas ao slide selecionado.
- Crie uma instância da classe Presentation.
- Defina o BackgroundType do slide como
OwnBackground. - Defina o FillType de fundo do slide como
Solid. - Use a propriedade SolidFillColor em FillFormat para especificar a cor de fundo sólida.
- Salve a apresentação modificada.
O exemplo a seguir em C# mostra como definir uma cor sólida azul como fundo para um slide normal:
// Crie uma instância da classe Presentation.
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// Defina a cor de fundo do slide para azul.
slide.Background.Type = BackgroundType.OwnBackground;
slide.Background.FillFormat.FillType = FillType.Solid;
slide.Background.FillFormat.SolidFillColor.Color = Color.Blue;
// Salve a apresentação no disco.
presentation.Save("SolidColorBackground.pptx", SaveFormat.Pptx);
}
Definir um Fundo de Cor Sólida para um Slide Mestre
Aspose.Slides permite definir uma cor sólida como fundo para o slide mestre em uma apresentação. O slide mestre atua como um modelo que controla a formatação de todos os slides, portanto, quando você escolhe uma cor sólida para o fundo do slide mestre, ela se aplica a todos os slides.
- Crie uma instância da classe Presentation.
- Defina o BackgroundType do slide mestre (via
masters) comoOwnBackground. - Defina o FillType de fundo do slide mestre como
Solid. - Use o SolidFillColor para especificar a cor de fundo sólida.
- Salve a apresentação modificada.
O exemplo a seguir em C# mostra como definir uma cor sólida (verde floresta) como fundo para um slide mestre:
// Crie uma instância da classe Presentation.
using (Presentation presentation = new Presentation())
{
IMasterSlide masterSlide = presentation.Masters[0];
// Defina a cor de fundo para o slide Mestre como Verde Floresta.
masterSlide.Background.Type = BackgroundType.OwnBackground;
masterSlide.Background.FillFormat.FillType = FillType.Solid;
masterSlide.Background.FillFormat.SolidFillColor.Color = Color.ForestGreen;
// Salve a apresentação no disco.
presentation.Save("MasterSlideBackground.pptx", SaveFormat.Pptx);
}
Definir um Fundo em Gradiente para um Slide
Um gradiente é um efeito gráfico criado por uma mudança gradual de cor. Quando usado como fundo de slide, os gradientes podem tornar as apresentações mais artísticas e profissionais. Aspose.Slides permite definir uma cor de gradiente como fundo para slides.
- Crie uma instância da classe Presentation.
- Defina o BackgroundType do slide como
OwnBackground. - Defina o FillType de fundo do slide como
Gradient. - Use a propriedade GradientFormat em FillFormat para configurar as definições de gradiente desejadas.
- Salve a apresentação modificada.
O exemplo a seguir em C# mostra como definir uma cor em gradiente como fundo para um slide:
// Crie uma instância da classe Presentation.
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// Aplique um efeito de gradiente ao fundo.
slide.Background.Type = BackgroundType.OwnBackground;
slide.Background.FillFormat.FillType = FillType.Gradient;
slide.Background.FillFormat.GradientFormat.TileFlip = TileFlip.FlipBoth;
// Salve a apresentação no disco.
presentation.Save("GradientBackground.pptx", SaveFormat.Pptx);
}
Definir uma Imagem como Fundo de Slide
Além de preenchimentos sólidos e em gradiente, Aspose.Slides permite usar imagens como fundos de slide.
- Crie uma instância da classe Presentation.
- Defina o BackgroundType do slide como
OwnBackground. - Defina o FillType de fundo do slide como
Picture. - Carregue a imagem que você deseja usar como fundo do slide.
- Adicione a imagem à coleção de imagens da apresentação.
- Use a propriedade PictureFillFormat em FillFormat para atribuir a imagem como fundo.
- Salve a apresentação modificada.
O exemplo a seguir em C# mostra como definir uma imagem como fundo para um slide:
// Crie uma instância da classe Presentation.
using (Presentation presentation = new Presentation())
{
ISlide slide = presentation.Slides[0];
// Defina as propriedades da imagem de fundo.
slide.Background.Type = BackgroundType.OwnBackground;
slide.Background.FillFormat.FillType = FillType.Picture;
slide.Background.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
// Carregue a imagem.
IImage image = Images.FromFile("Tulips.jpg");
// Adicione a imagem à coleção de imagens da apresentação.
IPPImage ppImage = presentation.Images.AddImage(image);
image.Dispose();
slide.Background.FillFormat.PictureFillFormat.Picture.Image = ppImage;
// Salve a apresentação no disco.
presentation.Save("ImageAsBackground.pptx", SaveFormat.Pptx);
}
O exemplo de código a seguir mostra como definir o tipo de preenchimento de fundo para uma imagem em mosaico e modificar as propriedades de repetição:
using (Presentation presentation = new Presentation())
{
ISlide firstSlide = presentation.Slides[0];
IBackground background = firstSlide.Background;
background.Type = BackgroundType.OwnBackground;
background.FillFormat.FillType = FillType.Picture;
IPPImage ppImage;
using (IImage newImage = Aspose.Slides.Images.FromFile("image.png"))
ppImage = presentation.Images.AddImage(newImage);
// Defina a imagem usada para o preenchimento de fundo.
IPictureFillFormat backPictureFillFormat = background.FillFormat.PictureFillFormat;
backPictureFillFormat.Picture.Image = ppImage;
// Defina o modo de preenchimento da imagem como Tile e ajuste as propriedades de telha.
backPictureFillFormat.PictureFillMode = PictureFillMode.Tile;
backPictureFillFormat.TileOffsetX = 15f;
backPictureFillFormat.TileOffsetY = 15f;
backPictureFillFormat.TileScaleX = 46f;
backPictureFillFormat.TileScaleY = 87f;
backPictureFillFormat.TileAlignment = RectangleAlignment.Center;
backPictureFillFormat.TileFlip = TileFlip.FlipY;
presentation.Save("TileBackground.pptx", SaveFormat.Pptx);
}
Alterar a Transparência da Imagem de Fundo
Você pode querer ajustar a transparência da imagem de fundo de um slide para que o conteúdo do slide se destaque. O código C# a seguir mostra como alterar a transparência de uma imagem de fundo de slide:
var transparencyValue = 30; // Por exemplo.
// Get the collection of picture transform operations.
var imageTransform = slide.Background.FillFormat.PictureFillFormat.Picture.ImageTransform;
// Find an existing fixed-percentage transparency effect.
var transparencyOperation = null as IAlphaModulateFixed;
foreach (var operation in imageTransform)
{
if (operation is IAlphaModulateFixed alphaModulateFixed)
{
transparencyOperation = alphaModulateFixed;
break;
}
}
// Set the new transparency value.
if (transparencyOperation == null)
{
imageTransform.AddAlphaModulateFixedEffect(100 - transparencyValue);
}
else
{
transparencyOperation.Amount = (100 - transparencyValue);
}
Obter o Valor do Fundo do Slide
Aspose.Slides fornece a interface IBackgroundEffectiveData para recuperar os valores efetivos do fundo de um slide. Essa interface expõe o FillFormat e o EffectFormat efetivos.
Usando a propriedade background da classe BaseSlide, você pode obter o fundo efetivo de um slide.
O exemplo a seguir em C# mostra como obter o valor efetivo do fundo de um slide:
// Crie uma instância da classe Presentation.
using (Presentation presentation = new Presentation("Sample.pptx"))
{
ISlide slide = presentation.Slides[0];
// Recupere o fundo efetivo, levando em conta o mestre, layout e tema.
IBackgroundEffectiveData effBackground = slide.Background.GetEffective();
if (effBackground.FillFormat.FillType == FillType.Solid)
Console.WriteLine("Fill color: " + effBackground.FillFormat.SolidFillColor);
else
Console.WriteLine("Fill type: " + effBackground.FillFormat.FillType);
}
Perguntas Frequentes
Posso redefinir um fundo personalizado e restaurar o fundo do tema/layout?
Sim. Remova o preenchimento personalizado do slide e o fundo será novamente herdado do slide de layout/master correspondente (ou seja, o fundo do tema).
O que acontece com o fundo se eu mudar o tema da apresentação mais tarde?
Se um slide possui seu próprio preenchimento, ele permanecerá inalterado. Se o fundo for herdado do layout/master, ele será atualizado para corresponder ao novo tema.