Werken met afbeeldingen in presentaties — Aspose.Slides FOSS voor Python
Aspose.Slides FOSS for Python lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame vormen. Afbeeldingen kunnen ook worden gebruikt als vorm-achtergrondvullingen via FillType.PICTURE.
Een afbeelding toevoegen vanuit bestand
Laad afbeeldingsbytes van schijf en voeg ze toe aan de afbeeldingscollectie van de presentatie met prs.images.add_image(). Plaats vervolgens de afbeelding op een dia als een 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)De vier positionele argumenten voor add_picture_frame() zijn: x, y, width, height in punten.
Een afbeelding toevoegen vanuit bytes
Als je al afbeeldingsbytes hebt (bijv. gedownload van een URL of gelezen uit een database), geef ze dan direct door aan 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)Positioneren en dimensioneren van een PictureFrame
De PictureFrame geretourneerd door add_picture_frame() erft alle Shape geometrische eigenschappen en kan na creatie opnieuw worden gepositioneerd:
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)Een afbeelding gebruiken als vormvulling
Elke vorm (niet alleen PictureFrame) kan een afbeelding gebruiken als achtergrondvulling. Stel fill_type = FillType.PICTURE in en wijs de afbeelding toe aan 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 schalen de afbeelding zodat deze de hele vorm vult. Gebruik TILE voor een herhalend tegelpatroon.
Meerdere afbeeldingen toevoegen over dia’s heen
Afbeeldingen toegevoegd aan prs.images worden gedeeld over alle dia’s. Dezelfde Image object kan worden gebruikt op meerdere dia’s zonder de gegevens te dupliceren:
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)