Trabalhando com Imagens em Apresentações — 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. Imagens também podem ser usadas como preenchimentos de fundo de forma via FillType.PICTURE.


Adding an Image from File

Carregue os bytes da imagem do disco e adicione-os à coleção de imagens da apresentação com prs.images.add_image(). Em seguida, coloque a imagem em um slide como um 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)

Os quatro argumentos posicionais para add_picture_frame() são: x, y, width, height em pontos.


Adicionando uma Imagem a partir de Bytes

Se você já tem os bytes da imagem (por exemplo, baixados de uma URL ou lidos de um banco de dados), passe-os diretamente para 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)

Positioning and Sizing a PictureFrame

O PictureFrame retornado por add_picture_frame() herda todos os Shape propriedades de geometria e pode ser reposicionado após a criação:

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)

Usando uma Imagem como Preenchimento de Forma

Qualquer forma (não apenas PictureFrame) pode usar uma imagem como preenchimento de fundo. Defina fill_type = FillType.PICTURE e atribua a imagem 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 redimensiona a imagem para preencher toda a forma. Use TILE para um padrão de ladrilho repetido.


Adicionando Múltiplas Imagens em Vários Slides

Imagens adicionadas a prs.images são compartilhadas em todos os slides. O mesmo Image objeto pode ser usado em vários slides sem duplicar os dados:

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)

Veja Também

 Português