So fügen Sie Bilder zu PowerPoint‑Folien in Python hinzu
Bilder in Aspose.Slides FOSS werden als picture frames eingebettet, Formen, die ein Bild enthalten und wie jede andere Form positioniert, skaliert und formatiert werden können. Die Bilddaten werden einmal in der prs.images-Sammlung gespeichert und vom Rahmen referenziert.
Voraussetzungen
pip install aspose-slides-fossEin 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 Signatur:
add_picture_frame(shape_type, x, y, width, height, image) → PictureFrameAlle Abmessungen sind in Punkten (1 Punkt = 1/72 Zoll). Für eine Standardfolie von 13,33 × 7,5 Zoll beträgt der Koordinatenraum 960 × 540 Punkte.
Ein Bild aus Bytes hinzufügen
Wenn Sie das Bild bereits als 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
Der picture_fill_format auf einem PictureFrame steuert, wie das Bild die Rahmenbegrenzungen 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)PictureFillMode | Verhalten |
|---|---|
STRETCH | Bild skalieren, um den Rahmen zu füllen, Seitenverhältnis ignorieren |
TILE | Bild als Kachelmuster wiederholen |
TILE_FLIP | Kacheln mit abwechselnden horizontalen/vertikalen Spiegelungen |
Mehrere 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)Bilder in einer vorhandenen Präsentation zählen
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-Sammlung wird über alle Folien hinweg gemeinsam genutzt: dieselben Bildbytes werden einmal gespeichert, selbst wenn der Bildrahmen auf mehreren Folien erscheint.