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-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 Unterschrift:
add_picture_frame(shape_type, x, y, width, height, image) → PictureFrameAlle 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)PictureFillMode | Verhalten |
|---|---|
STRETCH | Skalieren Sie das Bild, um den Rahmen zu füllen und ignorieren sie die Seitenverhältnisse. |
TILE | Wiederholen 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.