چگونه تصاویر را به اسلایدهای پاورپوینت در پایتون اضافه کنیم

چگونه تصاویر را به اسلایدهای پاورپوینت در پایتون اضافه کنیم

تصاویر در Aspose.Slides FOSS به‌صورت قاب‌های تصویر، اشکالی که تصویر را در خود نگه می‌دارند و می‌توانند مانند هر شکل دیگری موقعیت‌یابی، اندازه‌گیری و استایل شوند، جاسازی می‌شوند. داده‌های تصویر یک‌بار در مجموعه prs.images ذخیره می‌شود و توسط قاب ارجاع داده می‌شود.


پیش‌نیازها

pip install aspose-slides-foss

افزودن تصویر از یک فایل

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:

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

تمام ابعاد بر حسب نقطه‌ها (1 نقطه = 1/72 اینچ). برای یک اسلاید استاندارد به اندازه 13.33 × 7.5 اینچ، فضای مختصات 960 × 540 نقطه است.


افزودن یک تصویر از بایت‌ها

اگر قبلاً تصویر را به صورت بایت دارید (مثلاً از یک URL دانلود کرده‌اید یا از یک پایگاه داده خوانده‌اید):

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)

کنترل حالت پر کردن

picture_fill_format روی یک PictureFrame تعیین می‌کند که تصویر چگونه مرزهای فریم را پر می‌کند:

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)
PictureFillModeرفتار
STRETCHتصویر را برای پر کردن قاب مقیاس‌بندی کنید، نسبت ابعاد را نادیده بگیرید
TILEتصویر را به صورت الگوی کاشی‌ای تکرار کنید
TILE_FLIPکاشی‌گذاری با وارونه‌سازی‌های افقی/عمودی متناوب

افزودن چندین تصویر به اسلایدهای مختلف

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)

شمارش تصاویر در یک ارائه موجود

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 بین تمام اسلایدها به اشتراک گذاشته می‌شود: بایت‌های تصویر یک‌بار ذخیره می‌شوند حتی اگر فریم تصویر در چندین اسلاید ظاهر شود.


همچنین ببینید

 فارسی