Cara Menambah Imej ke Slaid PowerPoint dalam Python

Cara Menambah Imej ke Slaid PowerPoint dalam Python

Imej dalam Aspose.Slides FOSS disematkan sebagai picture frames, bentuk yang memegang imej dan boleh ditempatkan, diubah saiz, dan digayakan seperti mana-mana bentuk lain. Data imej disimpan sekali dalam koleksi prs.images dan dirujuk oleh bingkai.


Prasyarat

pip install aspose-slides-foss

Tambah Imej dari Fail

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)

Tandatangan add_picture_frame:

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

Semua dimensi dalam points (1 point = 1/72 inci). Untuk slaid standard 13.33 × 7.5 inci, ruang koordinat ialah 960 × 540 points.


Tambah Imej daripada Bait

Jika anda sudah mempunyai imej sebagai bait (contohnya, dimuat turun dari URL atau dibaca dari pangkalan data):

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)

Kawal Mod Isi

picture_fill_format pada PictureFrame mengawal bagaimana imej mengisi sempadan bingkai:

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)
PictureFillModeKelakuan
STRETCHSkalakan imej untuk mengisi bingkai, mengabaikan nisbah aspek
TILEUlang imej sebagai corak jubin
TILE_FLIPJubin dengan pembalikan mendatar/menegak secara bergantian

Tambah Pelbagai Imej ke Slide Berbeza

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)

Kira Imej dalam Pembentangan Sedia Ada

import aspose.slides_foss as slides

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

Koleksi prs.images dikongsi merentasi semua slaid: bait imej yang sama disimpan sekali walaupun bingkai gambar muncul pada beberapa slaid.


Lihat Juga

 Bahasa Melayu