Kaip pridėti paveikslėlius į PowerPoint skaidres naudojant Python

Kaip pridėti paveikslėlius į PowerPoint skaidres naudojant Python

Aspose.Slides FOSS paveikslai yra įterpiami kaip paveikslų rėmai, formos, kurios talpina paveikslą ir gali būti pozicionuojamos, keičiamas dydis ir stilizuojamos kaip bet kuri kita forma. Paveikslo duomenys saugomi vieną kartą prs.images kolekcijoje ir yra nuorodojami rėmo.


Būtinosios sąlygos

pip install aspose-slides-foss

Pridėti paveikslėlį iš failo

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)

add_picture_frame parašas:

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

Visi matmenys yra taškais (1 taškas = 1/72 colio). Standartinei 13.33 × 7.5 colio skaidrei koordinačių erdvė yra 960 × 540 taškų.


Pridėti paveikslėlį iš baitų

Jei jau turite paveikslėlį baitais (pvz., atsisiųstą iš URL arba perskaitytą iš duomenų bazės):

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)

Valdyti užpildymo režimą

picture_fill_format ant PictureFrame valdo, kaip vaizdas užpildo kadro ribas:

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)
PictureFillModeElgsena
STRETCHIštempti paveikslą, kad užpildytų rėmelį, nepaisant kraštinių santykio
TILEKartoti paveikslą kaip plytelės raštą
TILE_FLIPPlytelės su pakaitomis horizontaliais/vertikalais apvertimais

Pridėti kelis paveikslėlius į skirtingas skaidres

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)

Suskaičiuoti paveikslėlius esamo pristatyme

import aspose.slides_foss as slides

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

prs.images kolekcija yra bendrinama visose skaidrėse: tas pats paveikslėlio baitų rinkinys saugomas vieną kartą, net jei paveikslėlio rėmelis pasirodo keliose skaidrėse.


Žr. taip pat

 Lietuvių