Lavorare con le Immagini nelle Presentazioni — Aspose.Slides FOSS per Python
Aspose.Slides FOSS for Python lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame forme. Le immagini possono anche essere usate come riempimenti di sfondo delle forme tramite FillType.PICTURE.
Aggiungere un’immagine da file
Carica i byte dell’immagine dal disco e aggiungili alla collezione di immagini della presentazione con prs.images.add_image(). Quindi posiziona l’immagine su una diapositiva come 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)I quattro argomenti posizionali per add_picture_frame() sono: x, y, width, height in punti.
Aggiungere un’immagine da byte
Se hai già i byte dell’immagine (ad es., scaricati da un URL o letti da un database), passali direttamente 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)Posizionamento e dimensionamento di un PictureFrame
Il PictureFrame restituito da add_picture_frame() eredita tutti Shape le proprietà geometriche e può essere riposizionato dopo la creazione:
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)Usare un’immagine come riempimento di una forma
Qualsiasi forma (non solo PictureFrame) può usare un’immagine come riempimento di sfondo. Imposta fill_type = FillType.PICTURE e assegna l’immagine 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 scala l’immagine per riempire l’intera forma. Usa TILE per un motivo a tasselli ripetuto.
Aggiungere più immagini tra le diapositive
Immagini aggiunte a prs.images sono condivisi su tutte le diapositive. Lo stesso Image oggetto può essere usato su più diapositive senza duplicare i dati:
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)