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