Sådan tilføjer du billeder til PowerPoint‑slides i Python

Sådan tilføjer du billeder til PowerPoint‑slides i Python

Billeder i Aspose.Slides FOSS er indlejret som billedrammer, former der indeholder et billede og kan placeres, ændres i størrelse og styles som enhver anden form. Billeddataene gemmes én gang i prs.images-samlingen og refereres af rammen.


Forudsætninger

pip install aspose-slides-foss

Tilføj et billede fra en fil

from aspose.slides_foss import ShapeType, PictureFillMode
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    slide = prs.slides[0]

    # Load image into the presentation's image collection
    with open("photo.jpg", "rb") as f:
        img = prs.images.add_image(f.read())

    # Add a picture frame at (x=50, y=50, width=400, height=300) in points
    frame = slide.shapes.add_picture_frame(
        ShapeType.RECTANGLE,
        50, 50, 400, 300,
        img,
    )

    prs.save("with-image.pptx", SaveFormat.PPTX)

Den add_picture_frame signatur:

add_picture_frame(shape_type, x, y, width, height, image) → PictureFrame

Alle dimensioner er i points (1 point = 1/72 tomme). For en standard 10 × 7.5 tommer slide er koordinatområdet 720 × 540 points.


Tilføj et billede fra bytes

Hvis du allerede har billedet som bytes (f.eks. downloadet fra en URL eller læst fra en database):

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

image_bytes = open("logo.png", "rb").read()  # or any bytes source

with slides.Presentation() as prs:
    img = prs.images.add_image(image_bytes)

    prs.slides[0].shapes.add_picture_frame(
        ShapeType.RECTANGLE,
        200, 100, 300, 200,
        img,
    )
    prs.save("logo-slide.pptx", SaveFormat.PPTX)

Kontroller fyldtilstand

Den picture_fill_format på en PictureFrame styrer, hvordan billedet udfylder rammegrænserne:

from aspose.slides_foss import ShapeType, PictureFillMode
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    img = prs.images.add_image(open("texture.png", "rb").read())
    frame = prs.slides[0].shapes.add_picture_frame(
        ShapeType.RECTANGLE, 50, 50, 600, 350, img
    )

    # STRETCH: scale image to fill the frame exactly (default)
    frame.picture_format.picture_fill_mode = PictureFillMode.STRETCH

    # TILE: repeat the image in a grid pattern
    # frame.picture_format.picture_fill_mode = PictureFillMode.TILE

    prs.save("filled.pptx", SaveFormat.PPTX)
PictureFillModeAdfærd
STRETCHSkaler billedet til at udfylde rammen, uden at tage højde for billedformatet
TILEGentag billedet som et flisemønster

Tilføj flere billeder til forskellige dias

import os
from aspose.slides_foss import ShapeType
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat

image_files = ["slide1.jpg", "slide2.jpg", "slide3.jpg"]

with slides.Presentation() as prs:
    layout = prs.slides[0].layout_slide

    # Ensure enough slides exist
    while len(prs.slides) < len(image_files):
        prs.slides.add_empty_slide(layout)

    for i, path in enumerate(image_files):
        if not os.path.exists(path):
            continue
        img = prs.images.add_image(open(path, "rb").read())
        prs.slides[i].shapes.add_picture_frame(
            ShapeType.RECTANGLE, 0, 0, 720, 540, img
        )

    prs.save("multi-image.pptx", SaveFormat.PPTX)

Tæl billeder i en eksisterende præsentation

import aspose.slides_foss as slides

with slides.Presentation("with-image.pptx") as prs:
    print(f"Presentation contains {len(prs.images)} image(s)")

prs.images-samlingen deles på tværs af alle dias: de samme billedbytes gemmes én gang, selvom billedrammen vises på flere dias.


Se også

 Dansk