كيفية إضافة الصور إلى شرائح 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/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 مشتركة عبر جميع الشرائح: يتم تخزين بايتات الصورة نفسها مرة واحدة حتى إذا ظهر إطار الصورة في شرائح متعددة.


انظر أيضًا

 العربية