Kā pievienot attēlus PowerPoint slaidiem, izmantojot Python

Kā pievienot attēlus PowerPoint slaidiem, izmantojot Python

Attēli Aspose.Slides FOSS tiek iegulti kā attēlu rāmji, formas, kas satur attēlu un var tikt novietotas, mainītas izmērā un stilizētas kā jebkura cita forma. Attēlu dati tiek saglabāti vienreiz prs.images kolekcijā un tiek atsaukti uz rāmi.


Priekšnosacījumi

pip install aspose-slides-foss

Pievienot attēlu no faila

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 paraksts:

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

Visi izmēri ir punktos (1 punkts = 1/72 collas). Standarta 13.33 × 7.5 collas slaidam koordinātu telpa ir 960 × 540 punkti.


Pievienot attēlu no baitiem

Ja jums jau ir attēls kā baitu masīvs (piemēram, lejupielādēts no URL vai nolasīts no datu bāzes):

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)

Kontrolēt aizpildīšanas režīmu

picture_fill_format uz PictureFrame kontrolē, kā attēls aizpilda kadra robežas:

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)
PictureFillModeUzvedība
STRETCHMērogot attēlu, lai aizpildītu rāmi, ignorējot proporcijas
TILEAtkārtot attēlu kā flīzētu rakstu
TILE_FLIPFlīzēt ar pārmaiņām horizontālajos/vertikālajos apgriezumos

Pievienot vairākus attēlus dažādos slaidos

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)

Skaitīt attēlus esošā prezentācijā

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 tiek koplietota visās slaidos: tas pats attēla baiti tiek saglabāti vienreiz, pat ja attēla rāmis parādās vairākos slaidos.


Skatīt arī

 Latviešu