Cum să adăugați imagini în diapozitive PowerPoint în Python

Cum să adăugați imagini în diapozitive PowerPoint în Python

Imaginile în Aspose.Slides FOSS sunt încorporate ca cadre de imagine, forme care conțin o imagine și pot fi poziționate, redimensionate și stilizate ca orice altă formă. Datele imaginii sunt stocate o singură dată în colecția prs.images și sunt referențiate de cadru.


Cerințe preliminare

pip install aspose-slides-foss

Adaugă o imagine dintr-un fișier

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)

Semnătura add_picture_frame:

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

Toate dimensiunile sunt în puncte (1 punct = 1/72 inch). Pentru un diapozitiv standard de 13,33 × 7,5 inci spațiul de coordonate este de 960 × 540 puncte.


Adăugați o imagine din octeți

Dacă aveți deja imaginea sub formă de octeţi (de exemplu, descărcată de la un URL sau citită dintr-o bază de date):

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)

Controlați modul de umplere

picture_fill_format pe un PictureFrame controlează modul în care imaginea umple limitele cadrului:

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)
PictureFillModeComportament
STRETCHScalează imaginea pentru a umple cadrul, ignorând raportul de aspect
TILERepetă imaginea ca un model în mozaic
TILE_FLIPMozaic cu inversări orizontale/verticale alternante

Adăugați mai multe imagini pe diapozitive diferite

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)

Numărați imaginile într-o prezentare existentă

import aspose.slides_foss as slides

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

Colecția prs.images este partajată pe toate diapozitivele: aceiași octeți de imagine sunt stocați o singură dată chiar dacă cadrul imaginii apare pe mai multe diapozitive.


Vezi și

 Română