Cara Menambahkan Gambar ke Slide PowerPoint dengan Python

Cara Menambahkan Gambar ke Slide PowerPoint dengan Python

Gambar dalam Aspose.Slides FOSS disematkan sebagai picture frames, bentuk yang menampung gambar dan dapat diposisikan, diubah ukurannya, serta diberi gaya seperti bentuk lainnya. Data gambar disimpan satu kali dalam koleksi prs.images dan direferensikan oleh frame.


Prasyarat

pip install aspose-slides-foss

Tambahkan Gambar dari File

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)

Tanda tangan add_picture_frame:

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

Semua dimensi dalam points (1 point = 1/72 inci). Untuk slide standar 13.33 × 7.5 inci ruang koordinatnya adalah 960 × 540 points.


Tambahkan Gambar dari Byte

Jika Anda sudah memiliki gambar dalam bentuk byte (mis., diunduh dari URL atau dibaca dari basis 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)

Kontrol Mode Isi

picture_fill_format pada PictureFrame mengontrol bagaimana gambar mengisi batas 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)
PictureFillModePerilaku
STRETCHSkala gambar untuk mengisi bingkai, mengabaikan rasio aspek
TILEUlangi gambar sebagai pola ubin
TILE_FLIPUbin dengan pembalikan horizontal/vertikal bergantian

Tambahkan Beberapa Gambar ke Slide yang Berbeda

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)

Hitung Gambar dalam Presentasi yang 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 dibagikan di semua slide: byte gambar yang sama disimpan sekali meskipun bingkai gambar muncul di beberapa slide.


Lihat Juga

 Bahasa Indonesia