כיצד להוסיף תמונות לשקופיות PowerPoint ב-Python

כיצד להוסיף תמונות לשקופיות PowerPoint ב-Python

תמונות ב‑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 משותף לכל השקופיות: בתים של התמונה נשמרים פעם אחת בלבד גם אם מסגרת התמונה מופיעה בכמה שקופיות.


ראה גם

 עברית