Lucrul cu imagini în prezentări — Aspose.Slides FOSS pentru 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. Imaginile pot fi, de asemenea, utilizate ca umpluturi de fundal pentru forme prin FillType.PICTURE.
Adăugarea unei imagini din fișier
Încarcă octeții imaginii de pe disc și adaugă-i în colecția de imagini a prezentării cu prs.images.add_image(). Apoi plasează imaginea pe un diapozitiv ca un 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)Cele patru argumente poziționale pentru add_picture_frame() sunt: x, y, width, height în puncte.
Adăugarea unei imagini din octeți
Dacă ai deja octeți de imagine (de exemplu, descărcați de la un URL sau citiți dintr-o bază de date), transmite-i direct către 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)Poziționarea și dimensionarea unui PictureFrame
The PictureFrame returnat de add_picture_frame() moștenește toate Shape proprietățile geometrice și poate fi repoziționat după creare:
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)Utilizarea unei imagini ca umplere a unei forme
Orice formă (nu doar PictureFrame) poate folosi o imagine ca umplere de fundal. Set fill_type = FillType.PICTURE și atribuiți imaginea la 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 scalează imaginea pentru a umple întreaga formă. Folosiți TILE pentru un model de dale repetat.
Adăugarea mai multor imagini pe diapozitive diferite
Imaginile adăugate la prs.images sunt partajate pe toate diapozitivele. Același Image obiect poate fi utilizat pe mai multe diapozitive fără a duplica datele:
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)