Hoe afbeeldingen aan PowerPoint-dia's toe te voegen in Python
Afbeeldingen in Aspose.Slides FOSS worden ingebed als picture frames, vormen die een afbeelding bevatten en zoals elke andere vorm kunnen worden gepositioneerd, van grootte veranderd en gestyled. De afbeeldingsgegevens worden één keer opgeslagen in de prs.images collectie en gerefereerd door het frame.
Voorvereisten
pip install aspose-slides-fossAfbeelding toevoegen vanuit een bestand
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)De add_picture_frame handtekening:
add_picture_frame(shape_type, x, y, width, height, image) → PictureFrameAlle afmetingen zijn in points (1 point = 1/72 inch). Voor een standaard 13.33 × 7.5 inch dia is de coördinatenruimte 960 × 540 points.
Afbeelding toevoegen vanuit bytes
Als je de afbeelding al als bytes hebt (bijv. gedownload van een URL of gelezen uit een 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)Regel de vulmodus
De picture_fill_format op een PictureFrame bepaalt hoe de afbeelding de framegrenzen vult:
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 | Gedrag |
|---|---|
STRETCH | Schaal de afbeelding om het kader te vullen, negeer de beeldverhouding |
TILE | Herhaal de afbeelding als een tegelpatroon |
TILE_FLIP | Tegel met afwisselend horizontale/verticale spiegels |
Meerdere afbeeldingen toevoegen aan verschillende dia’s
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)Afbeeldingen tellen in een bestaande presentatie
import aspose.slides_foss as slides
with slides.Presentation("with-image.pptx") as prs:
print(f"Presentation contains {len(prs.images)} image(s)")De prs.images-collectie wordt gedeeld over alle dia’s: dezelfde afbeeldingsbytes worden één keer opgeslagen, zelfs als het afbeeldingskader op meerdere dia’s verschijnt.