Gestionar fondos de presentación en PHP
Visión general
Los colores sólidos, los degradados y las imágenes se utilizan habitualmente como fondos de diapositiva. Puedes establecer el fondo para una diapositiva normal (una sola diapositiva) o para una diapositiva maestra (se aplica a varias diapositivas a la vez).

Establecer un fondo de color sólido para una diapositiva normal
Aspose.Slides permite establecer un color sólido como fondo de una diapositiva específica en una presentación, incluso si la presentación utiliza una diapositiva maestra. El cambio se aplica únicamente a la diapositiva seleccionada.
- Crea una instancia de la Presentation clase.
- Establece el BackgroundType de la diapositiva en
OwnBackground. - Establece el FillType del fondo de la diapositiva en
Solid. - Utiliza el método getSolidFillColor en FillFormat para especificar el color de fondo sólido.
- Guarda la presentación modificada.
El siguiente ejemplo en PHP muestra cómo establecer un color azul sólido como fondo de una diapositiva normal:
// Crear una instancia de la clase Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Establecer el color de fondo de la diapositiva a azul.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Solid);
$slide->getBackground()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
// Guardar la presentación en disco.
$presentation->save("SolidColorBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Establecer un fondo de color sólido para una diapositiva maestra
Aspose.Slides permite establecer un color sólido como fondo de la diapositiva maestra en una presentación. La diapositiva maestra actúa como plantilla que controla el formato de todas las diapositivas, de modo que, al elegir un color sólido para el fondo de la diapositiva maestra, se aplica a cada diapositiva.
- Crea una instancia de la Presentation clase.
- Establece el BackgroundType de la diapositiva maestra (a través de
getMasters) enOwnBackground. - Establece el FillType del fondo de la diapositiva maestra en
Solid. - Utiliza el método getSolidFillColor para especificar el color de fondo sólido.
- Guarda la presentación modificada.
El siguiente ejemplo en PHP muestra cómo establecer un color verde sólido como fondo de una diapositiva maestra:
// Crear una instancia de la clase Presentation.
$presentation = new Presentation();
try {
$masterSlide = $presentation->getMasters()->get_Item(0);
// Establecer el color de fondo de la diapositiva maestra a verde bosque.
$masterSlide->getBackground()->setType(BackgroundType::OwnBackground);
$masterSlide->getBackground()->getFillFormat()->setFillType(FillType::Solid);
$masterSlide->getBackground()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
// Guardar la presentación en disco.
$presentation->save("MasterSlideBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Establecer un fondo degradado para una diapositiva
Un degradado es un efecto gráfico creado por un cambio gradual de color. Cuando se utiliza como fondo de diapositiva, los degradados pueden hacer que las presentaciones parezcan más artísticas y profesionales. Aspose.Slides permite establecer un color degradado como fondo de diapositivas.
- Crea una instancia de la Presentation clase.
- Establece el BackgroundType de la diapositiva en
OwnBackground. - Establece el FillType del fondo de la diapositiva en
Gradient. - Utiliza el método getGradientFormat en FillFormat para configurar los ajustes de degradado que prefieras.
- Guarda la presentación modificada.
El siguiente ejemplo en PHP muestra cómo establecer un color degradado como fondo de una diapositiva:
// Crear una instancia de la clase Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Aplicar un efecto degradado al fondo.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Gradient);
$slide->getBackground()->getFillFormat()->getGradientFormat()->setTileFlip(TileFlip::FlipBoth);
// Guardar la presentación en disco.
$presentation->save("GradientBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Establecer una imagen como fondo de diapositiva
Además de los rellenos sólidos y degradados, Aspose.Slides permite usar imágenes como fondos de diapositiva.
- Crea una instancia de la Presentation clase.
- Establece el BackgroundType de la diapositiva en
OwnBackground. - Establece el FillType del fondo de la diapositiva en
Picture. - Carga la imagen que deseas usar como fondo de la diapositiva.
- Añade la imagen a la colección de imágenes de la presentación.
- Utiliza el método getPictureFillFormat en FillFormat para asignar la imagen como fondo.
- Guarda la presentación modificada.
El siguiente ejemplo en PHP muestra cómo establecer una imagen como fondo de una diapositiva:
// Crear una instancia de la clase Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Establecer propiedades de la imagen de fondo.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Picture);
$slide->getBackground()->getFillFormat()->getPictureFillFormat()->setPictureFillMode(PictureFillMode::Stretch);
// Cargar la imagen.
$image = Images::fromFile("Tulips.jpg");
// Añadir la imagen a la colección de imágenes de la presentación.
$ppImage = $presentation->getImages()->addImage($image);
$image->dispose();
$slide->getBackground()->getFillFormat()->getPictureFillFormat()->getPicture()->setImage($ppImage);
// Guardar la presentación en disco.
$presentation->save("ImageAsBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
El siguiente fragmento de código muestra cómo establecer el tipo de relleno de fondo a una imagen en mosaico y modificar sus propiedades de teselado:
$presentation = new Presentation();
try {
$firstSlide = $presentation->getSlides()->get_Item(0);
$background = $firstSlide->getBackground();
$background->setType(BackgroundType::OwnBackground);
$background->getFillFormat()->setFillType(FillType::Picture);
$newImage = Images::fromFile("image.png");
$ppImage = $presentation->getImages()->addImage($newImage);
$newImage->dispose();
// Establecer la imagen utilizada para el relleno de fondo.
$backPictureFillFormat = $background->getFillFormat()->getPictureFillFormat();
$backPictureFillFormat->getPicture()->setImage($ppImage);
// Establecer el modo de relleno de imagen a Mosaico y ajustar las propiedades del mosaico.
$backPictureFillFormat->setPictureFillMode(PictureFillMode::Tile);
$backPictureFillFormat->setTileOffsetX(15);
$backPictureFillFormat->setTileOffsetY(15);
$backPictureFillFormat->setTileScaleX(46);
$backPictureFillFormat->setTileScaleY(87);
$backPictureFillFormat->setTileAlignment(RectangleAlignment::Center);
$backPictureFillFormat->setTileFlip(TileFlip::FlipY);
$presentation->save("TileBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Cambiar la transparencia de la imagen de fondo
Puede que necesites ajustar la transparencia de la imagen de fondo de una diapositiva para que el contenido de la misma destaque. El siguiente código PHP muestra cómo cambiar la transparencia de la imagen de fondo de una diapositiva:
$transparencyValue = 30; // Por ejemplo.
// Obtener la colección de operaciones de transformación de imagen.
$imageTransform = $slide->getBackground()->getFillFormat()->getPictureFillFormat()->getPicture()->getImageTransform();
// Buscar un efecto de transparencia de porcentaje fijo existente.
$transparencyOperation = null;
foreach($imageTransform as $operation) {
if (java_instanceof($operation, new JavaClass("com.aspose.slides.AlphaModulateFixed"))) {
$transparencyOperation = $operation;
break;
}
}
// Establecer el nuevo valor de transparencia.
if (java_is_null($transparencyOperation)) {
$imageTransform->addAlphaModulateFixedEffect(100 - $transparencyValue);
} else {
$transparencyOperation->setAmount(100 - $transparencyValue);
}
Obtener el valor del fondo de la diapositiva
Aspose.Slides proporciona la clase BackgroundEffectiveData para recuperar los valores efectivos del fondo de una diapositiva. Esta clase expone el FillFormat y el EffectFormat efectivos.
Utilizando el método getBackground de la clase BaseSlide, puedes obtener el fondo efectivo de una diapositiva.
El siguiente ejemplo en PHP muestra cómo obtener el valor efectivo del fondo de una diapositiva:
// Crear una instancia de la clase Presentation.
$presentation = new Presentation("Sample.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
// Recuperar el fondo efectivo, teniendo en cuenta master, layout y tema.
$effBackground = $slide->getBackground()->getEffective();
if ($effBackground->getFillFormat()->getFillType() == FillType::Solid)
echo "Fill color: " . $effBackground->getFillFormat()->getSolidFillColor() . "\n";
else
echo "Fill type: " . $effBackground->getFillFormat()->getFillType() . "\n";
} finally {
$presentation->dispose();
}
FAQ
¿Puedo restablecer un fondo personalizado y restaurar el fondo del tema/disposición?
Sí. Elimina el relleno personalizado de la diapositiva y el fondo se heredará nuevamente de la diapositiva de disposición/maestra correspondiente (es decir, del fondo del tema).
¿Qué ocurre con el fondo si cambio el tema de la presentación más adelante?
Si una diapositiva tiene su propio relleno, permanecerá sin cambios. Si el fondo se hereda de la disposición/maestra, se actualizará para coincidir con el nuevo tema.