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)

Vezi și

 Română