Wie man Bilder zu PowerPoint-Slides in Python hinzufügt

Wie man Bilder zu PowerPoint-Slides in Python hinzufügt

Die Bilder in Aspose.Slides FOSS sind als eingebettet. Bildrahmen,Die Bilder werden in der Bildverarbeitung gespeichert, und die Daten für das Bild sind im Computer gespeiht. prs.images Die Daten werden in der Sammlung und im Rahmen verwiesen.


Voraussetzungen für die Durchführung der Maßnahmen

pip install aspose-slides-foss

Ein Bild aus einer Datei hinzufügen

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)

Die add_picture_frame Unterschrift:

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

Alle Dimensionen sind in Punkte Für eine Standard-Slide mit 16:9 Breitbildschirm ist der Koordinatenraum 960 × 540 Punkte.


Ein Bild aus Bytes hinzufügen

Wenn Sie das Bild bereits in Bytes haben (z.B. von einer URL heruntergeladen oder aus einer Datenbank gelesen):

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)

Steuerung des Füllmodus

Die picture_fill_format auf einer PictureFrame steuert, wie das Bild die Rahmengrenzen füllt:

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)
PictureFillModeVerhalten
STRETCHSkalieren Sie das Bild, um den Rahmen zu füllen und ignorieren sie die Seitenverhältnisse.
TILEWiederholen Sie das Bild als geflieste Muster.

Mehrfache Bilder zu verschiedenen Folien hinzufügen

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, 960, 540, img
        )

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

Zählen Sie Bilder in einer vorhandenen 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)")

Die prs.images Die Sammlung wird auf allen Folien geteilt: die gleichen Bildbyte werden einmal gespeichert, auch wenn der Bilderrahmen auf mehreren Fotien erscheint.


Siehe auch:

 Deutsch