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)

Zie ook

 Nederlands