Praca z obrazami w prezentacjach — Aspose.Slides FOSS dla Python

Aspose.Slides FOSS for Python lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame kształty. Obrazy mogą być również używane jako wypełnienia tła kształtu za pomocą FillType.PICTURE.


Dodawanie obrazu z pliku

Wczytaj bajty obrazu z dysku i dodaj je do kolekcji obrazów prezentacji za pomocą prs.images.add_image(). Następnie umieść obraz na slajdzie jako 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)

Cztery argumenty pozycyjne dla add_picture_frame() to: x, y, width, height w punktach.


Dodawanie obrazu z bajtów

Jeśli już masz bajty obrazu (np. pobrane z URL lub odczytane z bazy danych), przekaż je bezpośrednio do 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)

Pozycjonowanie i zmiana rozmiaru PictureFrame

Ten PictureFrame zwrócony przez add_picture_frame() dziedziczy wszystkie Shape właściwości geometryczne i może być przemieszczone po utworzeniu:

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)

Używanie obrazu jako wypełnienia kształtu

Dowolny kształt (nie tylko PictureFrame) może używać obrazu jako wypełnienia tła. Ustaw fill_type = FillType.PICTURE i przypisz obraz do 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 skalują obraz, aby wypełnić cały kształt. Użyj TILE dla powtarzalnego wzoru kafelkowego.


Dodawanie wielu obrazów na różnych slajdach

Obrazy dodane do prs.images są współdzielone we wszystkich slajdach. Ten sam Image obiekt może być używany na wielu slajdach bez duplikowania danych:

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)

Zobacz także

 Polski