Trabajando con imágenes en presentaciones — Aspose.Slides FOSS para Python

Aspose.Slides FOSS for Python lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame formas. Las imágenes también pueden usarse como rellenos de fondo de forma mediante FillType.PICTURE.


Agregar una imagen desde archivo

Cargue los bytes de la imagen desde el disco y añádalos a la colección de imágenes de la presentación con prs.images.add_image(). Luego coloque la imagen en una diapositiva como una PictureFrame:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    # Add the image to the shared collection
    with open("logo.png", "rb") as f:
        img = prs.images.add_image(f.read())

    # Place it on the slide as a PictureFrame
    slide = prs.slides[0]
    slide.shapes.add_picture_frame(ShapeType.RECTANGLE, 50, 50, 300, 200, img)

    prs.save("with-image.pptx", SaveFormat.PPTX)

Los cuatro argumentos posicionales de add_picture_frame() son: x, y, width, height en puntos.


Añadiendo una Imagen desde Bytes

Si ya tiene los bytes de la imagen (p. ej., descargados de una URL o leídos de una base de datos), páselos directamente a add_image():

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

# Simulate having bytes in memory
with open("photo.jpg", "rb") as f:
    image_bytes = f.read()

with slides.Presentation() as prs:
    img = prs.images.add_image(image_bytes)
    prs.slides[0].shapes.add_picture_frame(ShapeType.RECTANGLE, 100, 80, 400, 250, img)
    prs.save("from-bytes.pptx", SaveFormat.PPTX)

Posicionamiento y dimensionado de un PictureFrame

El PictureFrame devuelto por add_picture_frame() hereda todos los Shape propiedades de geometría y puede ser reubicado después de la creación:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    with open("photo.jpg", "rb") as f:
        img = prs.images.add_image(f.read())

    pf = prs.slides[0].shapes.add_picture_frame(ShapeType.RECTANGLE, 0, 0, 100, 100, img)

    # Reposition and resize after creation
    pf.x = 50
    pf.y = 100
    pf.width = 350
    pf.height = 250

    prs.save("positioned.pptx", SaveFormat.PPTX)

Usar una imagen como relleno de forma

Cualquier forma (no solo PictureFrame) puede usar una imagen como relleno de fondo. Establezca fill_type = FillType.PICTURE y asigne la imagen a picture_fill_format.picture.image:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, FillType, PictureFillMode
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    with open("background.png", "rb") as f:
        img = prs.images.add_image(f.read())

    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.ROUND_CORNER_RECTANGLE, 50, 50, 400, 250)
    shape.fill_format.fill_type = FillType.PICTURE
    shape.fill_format.picture_fill_format.picture_fill_mode = PictureFillMode.STRETCH
    shape.fill_format.picture_fill_format.picture.image = img

    prs.save("picture-fill.pptx", SaveFormat.PPTX)

PictureFillMode.STRETCH escala la imagen para llenar toda la forma. Use TILE para un patrón de mosaico repetido.


Añadiendo Múltiples Imágenes a lo Largo de Diapositivas

Imágenes añadidas a prs.images se comparten en todas las diapositivas. El mismo Image objeto puede usarse en múltiples diapositivas sin duplicar los datos:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    with open("logo.png", "rb") as f:
        logo = prs.images.add_image(f.read())

    # Add the same image to both slides
    prs.slides[0].shapes.add_picture_frame(ShapeType.RECTANGLE, 600, 10, 100, 40, logo)

    prs.save("shared-image.pptx", SaveFormat.PPTX)

Ver también

 Español