Añadir marcos de imagen a presentaciones con Python
Introducción
Los marcos de imagen en Aspose.Slides para Python le permiten colocar y gestionar imágenes raster y vectoriales como formas nativas de diapositiva. Puede insertar imágenes desde archivos o flujos, posicionarlas y redimensionarlas con coordenadas precisas, aplicar rotación, establecer transparencia y controlar el orden Z junto a otras formas. La API también admite recorte, mantenimiento de relaciones de aspecto, configuración de bordes y efectos, y reemplazo de la imagen subyacente sin reconstruir el diseño. Dado que los marcos de imagen se comportan como formas normales, puede añadir animaciones, hipervínculos y texto alternativo, facilitando la creación de presentaciones visualmente ricas y accesibles.
Crear marcos de imagen
Esta sección muestra cómo insertar una imagen en una diapositiva creando un PictureFrame con Aspose.Slides para Python. Aprenderá a cargar la imagen, colocarla con precisión en la diapositiva y controlar su tamaño y formato.
- Crear una instancia de la clase Presentation.
- Obtener una diapositiva por su índice.
- Crear un PPImage añadiendo la imagen a la ImageCollection de la presentación. Esta imagen se usará para rellenar la forma.
- Especificar el ancho y alto del marco.
- Crear un PictureFrame de ese tamaño mediante el método add_picture_frame.
- Guardar la presentación como un archivo PPTX.
El siguiente código Python muestra cómo crear un marco de imagen:
import aspose.slides as slides
# Instanciar la clase Presentation para representar un archivo PPTX.
with slides.Presentation() as presentation:
# Obtener la primera diapositiva.
slide = presentation.slides[0]
# Añadir la imagen a la presentación.
with open("image.jpeg", "rb") as image_stream:
image = presentation.images.add_image(image_stream)
# Añadir un marco de imagen con el tamaño de la imagen.
picture_frame = slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, image.width, image.height, image)
# Guardar la presentación como PPTX.
presentation.save("picture_frame.pptx", slides.export.SaveFormat.PPTX)
Crear marcos de imagen con escala relativa
Esta sección demuestra cómo colocar una imagen con un tamaño fijo y luego aplicar una escala basada en porcentajes de forma independiente a su ancho y alto. Dado que los porcentajes pueden diferir, la relación de aspecto puede cambiar. El escalado se realiza relativo a las dimensiones originales de la imagen.
- Crear una instancia de la clase Presentation.
- Obtener una diapositiva por su índice.
- Crear un PPImage añadiendo la imagen a la ImageCollection de la presentación.
- Añadir un PictureFrame a la diapositiva.
- Establecer el ancho y alto relativos del marco de imagen.
- Guardar la presentación como un archivo PPTX.
El siguiente código Python muestra cómo crear un marco de imagen con escala relativa:
import aspose.slides as slides
# Instanciar la clase Presentation para representar un archivo PPTX.
with slides.Presentation() as presentation:
# Obtener la primera diapositiva.
slide = presentation.slides[0]
# Añadir la imagen a la colección de imágenes de la presentación.
with open("image.jpeg", "rb") as image_stream:
image = presentation.images.add_image(image_stream)
# Añadir un marco de imagen a la diapositiva.
picture_frame = slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, 100, 100, image)
# Establecer la escala relativa de ancho y alto.
picture_frame.relative_scale_height = 0.8
picture_frame.relative_scale_width = 1.35
# Guardar la presentación.
presentation.save("relative_scaling.pptx", slides.export.SaveFormat.PPTX)
Extraer imágenes raster de marcos de imagen
Puede extraer imágenes raster de objetos PictureFrame y guardarlas en PNG, JPG y otros formatos. El ejemplo de código a continuación demuestra cómo extraer una imagen del documento “sample.pptx” y guardarla en formato PNG.
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
first_slide = presentation.slides[0]
first_shape = first_slide.shapes[0]
if isinstance(first_shape, slides.PictureFrame):
image = first_shape.picture_format.picture.image.image
image.save("slide_1_shape_1.png", slides.ImageFormat.PNG)
Extraer imágenes SVG de marcos de imagen
Cuando una presentación contiene gráficos SVG ubicados dentro de formas PictureFrame, Aspose.Slides para Python mediante .NET le permite recuperar las imágenes vectoriales originales con plena fidelidad. Al recorrer la colección de formas de la diapositiva, puede identificar cada PictureFrame, comprobar si el PPImage subyacente contiene contenido SVG y luego guardar esa imagen en disco o en un flujo en su formato SVG nativo.
El siguiente ejemplo de código demuestra cómo extraer una imagen SVG de un marco de imagen:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
shape = slide.shapes[0]
if isinstance(shape, slides.PictureFrame):
svg_image = shape.picture_format.picture.image.svg_image
if svg_image is not None:
with open("output.svg", "w", encoding="utf-8") as svg_stream:
svg_stream.write(svg_image.svg_content)
Obtener la transparencia de la imagen
Aspose.Slides le permite recuperar el efecto de transparencia aplicado a una imagen. Este código Python demuestra la operación:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
picture_frame = presentation.slides[0].shapes[0]
image_transform = picture_frame.picture_format.picture.image_transform
for effect in image_transform:
if isinstance(effect, slides.effects.AlphaModulateFixed):
transparency_value = 100 - effect.amount
print("Picture transparency: " + str(transparency_value))
Formato de marcos de imagen
Aspose.Slides ofrece muchas opciones de formato que puede aplicar a un marco de imagen. Con estas opciones, puede ajustar un marco de imagen para cumplir requisitos específicos.
- Crear una instancia de la clase Presentation.
- Obtener una diapositiva por su índice.
- Crear un PPImage añadiendo la imagen a la ImageCollection de la presentación. Esta imagen se usará para rellenar la forma.
- Especific