Trabalhar 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 imagens também podem ser usadas como forma de fundo preenche via FillType.PICTURE.
Adicionar uma imagem de um arquivo
Carregar bytes de imagem do disco e adicioná-los à coleção de fotos da apresentação com prs.images.add_image().Depois coloque a imagem num 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 de posição para a add_picture_frame() são: x, y, width, height em pontos.
Adicionando uma imagem de bytes
Se já tiver bytes de imagem (por exemplo, baixados a partir de uma URL ou lidos a contar com um banco de dados), passe-os diretamente para o 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)Posicionamento e tamanho de um quadro fotográfico
A Comissão PictureFrame devolvido por: add_picture_frame() herda tudo. Shape Propriedades geométricas e podem ser reposicionados 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)Usar uma imagem como um preenchimento de forma
Qualquer forma (não apenas PictureFrame) pode usar uma imagem como seu preenchimento de fundo. Set fill_type = FillType.PICTURE e atribuir a imagem para o 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 a imagem para preencher toda a forma. Use TILE para um padrão de azulejos repetitivo.
Adicionar várias imagens em slides
Imagens adicionadas a prs.images são compartilhados em todos os slides. Image Objeto pode ser utilizado 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)